欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

python -- Pandas 字符串替换

程序员文章站 2022-06-22 16:06:22
...

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

1. 常用的series 的 replace

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

python -- Pandas 字符串替换

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

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

python -- Pandas 字符串替换

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

2. 使用字典修改对应值
python -- Pandas 字符串替换

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

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(value, regex=True)
df.web.replace(k, list(v), regex=True)	 # 注意如果不使用list,则表示多对单
df.web.replace(regex=value)
df.web.replace(value=list(v), regex=k)

python -- Pandas 字符串替换

2. Pandas 中str.replace()

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

  • pat为想要寻找的模式,一般为正则表达式,
  • repl为要替换进去的字符串或函数
  1. 简单替换
    python -- Pandas 字符串替换

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

  1. 使用函数
    python -- Pandas 字符串替换
    . 正则的使用可以千变万化,当使用函数后可以很方便的根据自定义规则去修改值