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

时间:2018-03-02 21:29:40

标签: python python-3.x pandas dataframe join

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

我的第一个数据框如下所示,称之为df1

teamStatsDF

第二个看起来,称之为df2

teamGames

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

1 个答案:

答案 0 :(得分: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