在具有不同列名的pandas中连接2个数据帧[重复]

问题描述 投票:0回答:1

这个问题在这里已有答案:

我试图以一种奇怪的方式加入2个数据帧,并且想知道是否有人有任何建议。

我的第一个数据框看起来像这样,称之为df1

teamStatsDF

第二个看起来像,称之为df2

teamGames

我希望我的最终输出能够将每个团队的统计数据合并到游戏数据框中各自的名称旁边。我想到这样做的一种蛮力方式是将TEAM中的df1列的名称更改为Home,加入其中。然后,将TEAM列更改为Visitor并将其加入其中,但我觉得它们应该是一种更简单的方法。谁能给我这方面的建议,谢谢!

python python-3.x pandas dataframe join
1个回答
0
投票

您可以使用left_on中的right_onpd.merge参数。

df1 = pd.DataFrame({'col1' : ['a','b','c','d','e','b'], 'val2': [31,43,23,54,65,23]})
df2 = pd.DataFrame({'col2': ['a','b','c'], 'val1': [11,22,33]})

df3 = pd.merge(df1, df2, left_on='col1', right_on='col2', how='left')
print(df3)

  col1 val2 col2 val1
0   a   31   a   11.0
1   b   43   b   22.0
2   c   23   c   33.0
3   d   54  NaN  NaN
4   e   65  NaN  NaN
5   b   23   b   22.0
© www.soinside.com 2019 - 2024. All rights reserved.