前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Python查找和替换Excel数据

使用Python查找和替换Excel数据

作者头像
fanjy
发布2022-04-13 14:13:21
4.9K0
发布2022-04-13 14:13:21
举报
文章被收录于专栏:完美Excel

标签:Python与Excel,pandas

这里,我们将学习如何在Python中实现常见的Excel操作——查找和替换数据。

准备用于演示的数据框架

让我们将Excel文件(注:你可以在知识星球完美Excel社群下载示例Excel文件find_replace.xlsx,以便于进行后续操作)数据加载到Python中,我们同样将使用pandas库,这是Python中数据分析的标准。

图1

本文将演示在Python中查找和替换数据的两种方法。第一个是称之为“直接替换”,第二个是“条件替换”。

使用.replace()方法直接替换

顾名思义,此方法将查找匹配的数据并用其他数据替换。下面是我们可以传递到.replace()方法的一些参数:

  • to_replace:要替换的数据
  • value:新值
  • inplace:是否替换原始数据框架
  • 注意,还可以使用其他参数,但我暂不讨论它们。有关完整的参数列表,可以查看pandas官方文档

全部替换

在Excel中,我们可以按Ctrl+H并替换所有值,让我们在这里实现相同的操作。我们使用“Yui Ikari”替换数据框架中的所有的“Ayanami Rei”。注意,对于下面的代码,在括号内我已经包含了参数名称,但实际上并不是必需的,你只需编写df.replace('Ayanami Rei','Yui Ikari'),它仍然可以工作。先导列第0行和第9行中的值已更新。

图2

带筛选的条件替换

该方法解决了直接替换法无法解决的一个问题,即当我们需要基于数据本身的值以外的一些条件来替换数据时。这里有一个例子:对于飞行员“Kaworu Nagisa”(第4行和第6行),我们想将他的阵营从“Ally(盟友)”改为“Enemy(敌人)”。我们不能使用前面的方法(或Ctrl+H),因为这会将所有“Ally”替换为“Enemy”。为了解决这个问题,我们需要首先筛选数据框架,满足的条件是Pilot=='Kaworu-Nagisa'。

在Excel中的解决方法是使用公式,比如=if(A1=”Kaworu Nagisa”,”Enemy”,”Ally”),然后向下拖动至所有行。然而,这样的效率并不高,因为我们基本上是在更改所有行,而我们只需要修改其中的两行。

下面是Python解决方案。

图3

上面的代码行返回条件Pilot=='Kaworu-Nagisa'为真的记录(4和6)。一旦有了这个子数据集,我们就可以随意修改这两个记录上的任何内容,所以让我们将其Side从“Ally”改为“Enemy”。如果仍想在此处使用.replace(),可随意使用。然而,也可用另一种方式去做。还记得当我们介绍筛选时,实际上可以选择特定的列吗?因此,我们将只为符合条件的记录选择Side列,然后直接在该列中赋值“Enemy”。顺便说一句,这是一种更具python风格的代码编写方式。

图4

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2022-04-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档