python - 更改一个 df 中的列值以匹配不同 df 中的列值?

标签 python pandas dataframe

我有 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/

相关文章:

python - 如何用给定的索引索引numpy数组?

python - 从两个 pandas DataFrame 中选择前 N 个

R:避免循环或行应用功能

python - 如何在 Django Rest Framework 中处理 PUT 请求

python - 如何在用 python 编写的 tail 函数中附加一些数据

python - Pandas 中带有时区列的时间戳

python - pandas 中二进制变量之间的相关性

python - 如果行数大于 1,则在 Group By 上应用自定义函数

python - 如何判断 Pandas 数据框中的列是否属于日期时间类型?如何判断列是否为数字?

python - 如何删除 python pandas read_csv 中没有标题的列