首页 > 解决方案 > 如何在列中对齐两个熊猫数据框的值?

问题描述

我正在对梦幻超级联赛的足球数据进行一些分析。我已经为每个游戏周下载了 .txt 文件,其中包含该游戏的每个玩家的统计数据。

然而,由于球员离开和到达英超联赛,球员在每个比赛周文件中并没有完全对齐。该图显示了球员 Aaron Connolly 如何在第 1 场和第 4 场比赛之间进入联盟,从而抵消所有其他球员。

在此处输入图像描述

我想要实现的是两个数据集,其中同一个玩家在同一行。

我想要这个的原因是有 40 个游戏周,我使用循环来组合不同游戏周之间的数据并制作新列。

我查看了 pandas.align() 方法,但无法弄清楚如何在列值“名称”上对齐

编辑:有 40 个游戏周和超过 500 个条目。gameweek,所以我不能手动进入并对齐它们。Aaron Connolly 只是一个例子,但在不同的比赛周中有多个偏移量。我希望每个玩家在所有 40 个数据集中都位于同一行。

标签: pythonpandas

解决方案


只需使用setindex

df1 = pd.DataFrame({'a': [1,2, 3], 'b': [2, 34, 4]})
df2 = pd.DataFrame({'a': [1,4, 3], 'b': [2, 34, 4]})
aligned1, aligned2 = df1.set_index('a').align(df2.set_index('a'))

然后要name恢复您的列,您可以执行以下操作:

aligned1 = aligned.reset_index()

推荐阅读