Pandas / Python将两个数据帧组合在一起,形成重复的行

时间:2015-06-18 09:08:46

标签: python pandas

好吧这看起来应该很容易用合并或连接操作,但我不能破解它。我在熊猫工作。

我有两个数据帧,它们之间有重复的行,我想以不重复行或列的方式组合它们。它会像这样工作

df1:

A B 
a 1
b 2
c 3

df2:

A B 
b 2
c 3
d 4

df3 = df1 combined with df2

A B 
a 1
b 2
c 3
d 4

我尝试过的一些方法是选择一个但不是另一个的行(一个XOR),然后追加它们,但我无法弄清楚如何进行选择。我的另一个想法是追加它们并删除重复的行,但我不知道如何做后者。

2 个答案:

答案 0 :(得分:4)

您需要outer merge

In [103]:
df1.merge(df2, how='outer')

Out[103]:
   A  B
0  a  1
1  b  2
2  c  3
3  d  4

上面的工作原理是它自然地在两个dfs之间找到了公共列,并且指定了合并类型会产生一个带有所需组合列的联合的df。

答案 1 :(得分:0)

您可以使用以下内容删除重复项:

pd.concat([df1, df2]).drop_duplicates()