我有 2 个数据框要根据 name
列合并。一个 df 中的名称列具有缩写版本,而另一个 df 中的名称列具有全名。更改列名以相互匹配的最有效方法是什么?
df1[names] = ["Man Utd", "Man City", "Chelsea", "Liverpool", "Spurs", "Arsenal"]
df2[names] = ["Manchester United", "Manchester City", "Chelsea FC", "Liverpool FC", "Tottenham Hotspurs", "Arsenal FC"]
最佳答案
您可以使用 dict(zip())
创建如下字典
df1['names'] = ["Man Utd", "Man City", "Chelsea", "Liverpool", "Spurs", "Arsenal"]
df2['names'] = ["Manchester United", "Manchester City", "Chelsea FC", "Liverpool FC", "Tottenham Hotspurs", "Arsenal FC"]
d=dict(zip(df1['names'],df2['names'])) #created a mapping dictionary
print(d)
{'Man Utd': 'Manchester United',
'Man City': 'Manchester City',
'Chelsea': 'Chelsea FC',
'Liverpool': 'Liverpool FC',
'Spurs': 'Tottenham Hotspurs',
'Arsenal': 'Arsenal FC'}
然后将 df1[names]
更改为
df1[names]=df1[names].map(d)
发布此您可以执行合并,因为现在列名相同。
关于python - 更改一个 df 中的列值以匹配不同 df 中的列值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54371638/