标签:Python与Excel,pandas
这里,我们将学习如何在Python中实现常见的Excel操作——查找和替换数据。
准备用于演示的数据框架
让我们将Excel文件(注:你可以在知识星球完美Excel社群下载示例Excel文件find_replace.xlsx,以便于进行后续操作)数据加载到Python中,我们同样将使用pandas库,这是Python中数据分析的标准。
图1
本文将演示在Python中查找和替换数据的两种方法。第一个是称之为“直接替换”,第二个是“条件替换”。
使用.replace()方法直接替换
顾名思义,此方法将查找匹配的数据并用其他数据替换。下面是我们可以传递到.replace()方法的一些参数:
全部替换
在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
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有