Skip to main content
 首页 » 编程设计

python之Pandas 从单独的 df 中定义的映射中替换 df 中的项目

2025年05月04日22langtianya

假设我有以下两个 DataFrame:

df1 = pd.DataFrame({'id': [1, 2, 3], 'name': ['Johnny', 'Sara', 'Mike']}) 
df2 = pd.DataFrame({'name': [2, 1, 2]}) 

如何从 df1 中定义的映射更新 df2:

df2 = pd.DataFrame({'name': ['Sara', 'Johnny', 'Sara']}) 

我已经完成了以下操作,但必须有更好的方法:

id_to_name = {i: name for i, name in zip(df1['id'].tolist(), df1['name'].tolist())} 
df2['name'] = df2['name'].map(id_to_name) 

请您参考如下方法:

另一种方式:-)我最近才学

df1.set_index('id').name.get(df2.name) 
Out[381]:  
id 
2      Sara 
1    Johnny 
2      Sara 
Name: name, dtype: object