padas替换DataFrame中值
总括常见的替换包括:把一列中的某个旧值替换为一个新值:df['column_name'] = df['column_name'].replace(['old_value'],'new_value')把一列中的多个旧值替换为一个新值:df['column name'] = df['column name'].replace(['1st old value','2nd old value',...],
·
总括
常见的替换包括:
- 把一列中的某个旧值替换为一个新值:
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/
更多推荐



所有评论(0)