根据另一个数据框执行替换

时间:2019-11-13 13:54:52

标签: pandas dataframe pandas-groupby

我有两个数据框:

item   |  label  
 213      'red'
 112      'green'
 332      'orange'
...

和另一个本质上像字典的数据框:

old_label  | new_label
 'red'       'red and bright'
 'orange'    'mild orange'

如何应用从第二个数据帧到第一个数据帧的映射,以获得:

item   |  label  
 213      'red and bright'
 112      'green'
 332      'mild orange'
...

忽略第二个数据框中找不到的元素?

1 个答案:

答案 0 :(得分:1)

由另一个Series使用Series.replace

df1['label'] = df1['label'].replace(df2.set_index('old_label')['new_label'])

或者是Series.map,但是由于返回的NaN的不匹配值被原始值替换为Series.fillna

df1['label'] = df1['label'].map(df2.set_index('old_label')['new_label']).fillna(df1['label'])