我有两个数据框:
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'
...
忽略第二个数据框中找不到的元素?
答案 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'])