> 经常听别人说 Python 在数据领域有多厉害,结果学了很长时间,连数据处理都麻烦得要死。后来才发现,原来不是 Python 数据处理厉害,而是他有数据分析神器—— pandas
前言
Excel 无疑是数据处理的入门工具,他有许多便捷的功能,但是实际工作中的需求往往是越来越"疯狂",今天我们就来看看如何在 pandas 中实现 Excel 中的查找替换功能,并且最后做到 Excel 所做不到的。
案例1
Excel 很容易出现不规范的数据,有时候我们会遇到各列都有些问题值需要批量替换:
- - 希望把所有 x 替换成"问题数据"
Excel 上自然用查找替换,Ctrl H ,填写查找值与替换值,马上搞定:
pandas 中也有同样的方法对应查找替换功能:
- - DataFrame.replace()
- - 参数1:查找值
- - 参数2(value):替换值
案例2
但是,有时候情况会变得复杂:
- - 大部分的异常值是 x ,但有一些是 xx
Excel 中可以的查找值可以使用通配符,如下可以解决:
- - 查找值填 "x*"
pandas 中,直接可以使用正则表达式,因此完全难不倒你:
- - 参数 regex ,填写正则表达式,"x " ,表示1个或多个x
案例3
现实往往超出你的想象,部门领导突然跟你说,每列的异常数据替换为"问题[列名]":
- - 每列的新值都不一样
此时你心里走过一万个草泥马。
如果在 Excel ,这只能手工逐列替换操作。
pandas 中当然不需要:
- - 第2参数 value ,可以接受一个字典,key 是列名,item 是替换的新值
拒绝繁琐!!
有人就会说:这太傻了吧,我还要每列的新值给写出来,我还不如用 Excel 一列列操作呢。
你说的对,当然有更加灵活方便的方式:
- - pandas 中可以轻松访问列名字等信息
上面这方法即使换另外一份数据,一句代码都不需要修改即可完成任务!!
你 get 到了吗?
总结
- - DataFrame.replace() ,整表查找替换
- - 参数1 : 指定查找值
- - 参数2(value):替换的新值,可以用字典,用以不同列替换不同值
- - 参数 regex:正则表达式,可以做最灵活的查找替换