python -- Pandas replace自定义函数做数据替换

Pandas 作为python最常用的数据包之一经常会被用到,其涉及数据替换的方法有很多,下面简述我了解的几种方法:

1. 常用的series 的 replace

replace(
        self,
        to_replace=None,	# 替换前的数据
        value=None,	# 替换后的数据
        inplace=False,	 # 是否修改源数据
        limit=None,	 # 修改限制
        regex=False,	# 是否使用正则
        method="pad",	# 填充方式,还有‘ffill’ 和‘bfill’
    )

在这里插入图片描述

1. 简单的单个和多个数据替换

df.web.replace('RAY', "ray")  # 单对单
df.web.replace(['RAY', '365'], "A") # 多对单
df.web.replace(['RAY','YB-IM','1X'], ["A", "B","C"])	# 多对多, 数量要对应

在这里插入图片描述

注:未设置inplace时返回替换后的结果,源数据不变,inplace设置为True直接修改源数据

2. 使用字典修改对应值
在这里插入图片描述

注意:以上替换需要完全匹配才能替换

3. 使用正则修改
配置regex=True则表示使用正则,正则寻找到匹配的字符串即替换, 不需要完全匹配
写法有多种:

value = {'RAY': 'A', 'YB-FY': 'B', 'YB-IM': 'C', '1X': 'D', '365': 'E'}
k =  ['RAY', 'YB-FY', 'YB-IM', '1X', '365']
v = "ABCDE"
df.web.replace(k, list(v), regex=True)  # 注意如果不使用list,则表示多对单
df.web.replace(value, regex=True)
df.web.replace(k, list(v), regex=True)	 
df.web.replace(regex=value)	# 直接赋值字典给regex
df.web.replace(value=list(v), regex=k)	# 赋值key给regex, 然后value自己给出

在这里插入图片描述


2. Pandas 中str.replace()

str.replace()的正式形式为 Series.str.replace(pat, repl)

  • pat为想要寻找的模式,一般为正则表达式,
  • repl为要替换进去的字符串或函数, 重点是其可以使用函数

1. 简单替换
在这里插入图片描述

注:使用的时正则,匹配到即替换,不需要完全匹配

2. 使用函数
当repl为函数时,pat正则表达式匹配到的结果会作为参数传递过去,然后使用函数返回值替换匹配到的部分

在这里插入图片描述

正则的使用可以千变万化,当使用函数后可以很方便的根据自定义规则去修改值

在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值