pandas replace函数全解析:Series与DataFrame值替换实战
本文详细解析pandas中replace函数的核心用法,涵盖Series与DataFrame对象的单值、多值及正则表达式替换。通过具体代码示例,展示如何利用字典映射、列表替换以及pad/ffill/bfill等方法进行缺失值填充,并介绍limit参数对填充次数的控制,帮助开发者高效完成数据清洗任务。
pandas库中replace函数的完整语法定义如下:replace(self, to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad', axis=None)。该函数提供了丰富的参数选项,用于灵活处理数据中的特定值替换需求。
具体应用方式可通过以下代码示例进行说明,主要涉及Series和DataFrame两种数据结构的值替换操作。
import numpy as np
import pandas as pd
df = pd.read_csv('emp.csv')
df

#Series对象值替换
s = df.iloc[2]#获取行索引为2数据
#单值替换
s.replace('?',np.nan)#用np.nan替换?
s.replace({'?':'NA'})#用NA替换?
#多值替换
s.replace(['?',r'$'],[np.nan,'NA'])#列表值替换
s.replace({'?':np.nan,'$':'NA'})#字典映射
#同缺失值填充方法类似
s.replace(['?','$'],method='pad')#向前填充
s.replace(['?','$'],method='ffill')#向前填充
s.replace(['?','$'],method='bfill')#向后填充
#limit参数控制填充次数
s.replace(['?','$'],method='bfill',limit=1)
#DataFrame对象值替换
#单值替换
df.replace('?',np.nan)#用np.nan替换?
df.replace({'?':'NA'})#用NA替换?
#按列指定单值替换
df.replace({'EMPNO':'?'},np.nan)#用np.nan替换EMPNO列中?
df.replace({'EMPNO':'?','ENAME':'.'},np.nan)#用np.nan替换EMPNO列中?和ENAME中.
#多值替换
df.replace(['?','.','$'],[np.nan,'NA','None'])##用np.nan替换?用NA替换. 用None替换$
df.replace({'?':'NA','$':None})#用NA替换? 用None替换$
df.replace({'?','$'},{'NA',None})#用NA替换? 用None替换$
#正则替换
df.replace(r'\?|\.|\$',np.nan,regex=True)#用np.nan替换?或.或$原字符
df.replace([r'\?',r'\$'],np.nan,regex=True)#用np.nan替换?和$
df.replace([r'\?',r'\$'],[np.nan,'NA'],regex=True)#用np.nan替换?用NA替换$符号
df.replace(regex={r'\?':None})
#value参数显示传递
df.replace(regex=[r'\?|\.|\$'],value=np.nan)#用np.nan替换?或.或$原字符
以上内容总结了pandas replace函数的主要使用方法,旨在为读者提供实用的参考指南。希望这些示例能帮助大家更好地掌握数据替换技巧,欢迎持续关注以获取更多技术支持。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













