我有2个要根据列名称合并的数据框.一个df中的name列具有缩写版本,而另一个df中的name列具有全名.更改列名以相互匹配的最有效方法是什么?
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)
发布后,您可以执行合并,因为列名现在相同.