使用特定列连接两个pandas数据帧

时间:2015-06-01 22:39:32

标签: python join pandas dataframe

我是pandas的新手,我正在尝试根据一个特定列的相等性加入两个数据帧。例如,假设我有以下内容:

df1
A    B    C
1    2    3
2    2    2

df2
A    B    C
5    6    7
2    8    9

两个数据帧都具有相同的列,并且只有一列(例如A)的值可能相等。我想要的输出是这样的:

df3
A    B    C   B    C
2    8    9   2    2

列'A'的值在两个数据帧中都是唯一的。

由于

2 个答案:

答案 0 :(得分:10)

pd.concat([df1.set_index('A'),df2.set_index('A')], axis=1, join='inner')

如果您希望将列A保留为非索引,则:

pd.concat([df1.set_index('A'),df2.set_index('A')], axis=1, join='inner').reset_index()

答案 1 :(得分:10)

或者,您可以这样做:

df3 = df1.merge(df2, on='A', how='inner', suffixes=('_1', '_2'))

然后你可以跟踪每个价值的来源