总括

常见的替换包括:

  • 把一列中的某个旧值替换为一个新值:df['column_name'] = df['column_name'].replace(['old_value'],'new_value')
  • 把一列中的多个旧值替换为一个新值:df['column name'] = df['column name'].replace(['1st old value','2nd old value',...],'new value')
  • 把一列中的多个旧值替换为多个新值:df['column name'] = df['column name'].replace(['1st old value','2nd old value',...],['1st new value','2nd new value',...])
  • 把整个数据集中的某个旧值替换为一个新值:df = df.replace(['old value'],'new value')
示例

假设原数据如下:

import pandas as pd

colors = {'first_set':  ['Green','Green','Green','Blue','Blue','Red','Red','Red'],
          'second_set': ['Yellow','Yellow','Yellow','White','White','Blue','Blue','Blue']
         }

df = pd.DataFrame(colors, columns= ['first_set','second_set'])

print (df)

在这里插入图片描述

  • 把第一列中的Blue替换为blue:
df['first_set'] = df['first_set'].replace(['Blue'],'blue')
print (df)

在这里插入图片描述

  • 把第一列中的blue和Red替换为green:
df['first_set'] = df['first_set'].replace(['blue','Red'],'green')
print (df)

在这里插入图片描述

  • 把第一列中的Green替换为black, green替换为white:
df['first_set'] = df['first_set'].replace(['Green','green'],['black','white'])
print (df)

在这里插入图片描述

  • 把数据集中所有的white替换为yellow:
# 替换一个
df = df.replace(['white'],'yellow')
print(df)

# 替换多个
df = df.replace(['yellow','Blue'],'red')
print (df)

在这里插入图片描述

关于替换replace

既可以替换某列,也可以替换某行,还可以全表替换

df.replace() 或者 df[col].replace(),其参数如下:

df.replace(to_replace=None, value=None, inplace=False, limit=None, regex=False, method='pad')

其中,

  • to_replace:被替换的值
  • value:替换后的值
  • inplace:是否要改变原数据,False是不改变,True是改变,默认是False
  • limit:控制填充次数
  • regex:是否使用正则,False是不使用,True是使用,默认是False
  • method:填充方式,pad,ffill,bfill分别是向前、向前、向后填充

这里重点说一下正则替换,可以字符串的部分匹配替换:

# 替换一个
df['first_set'] = df['first_set'].replace(['ed'],'ead',regex=True)
print(df)

# 替换多个
df['first_set'] = df['first_set'].replace(['ead', 'ack'],['ed', 'ock'],regex=True)
print(df)

在这里插入图片描述

参考资料:https://datatofish.com/replace-values-pandas-dataframe/

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐