如何获得两个数据帧的交集?

时间:2015-03-26 21:24:27

标签: python pandas dataframe

我有两个类似格式的数据框:

df1 = DataFrame({'a':[0,1,2,3,4], 'b':['q','r','s','t','u']})
df1

    a   b
0   0   q
1   1   r
2   2   s
3   3   t
4   4   u

df2 = DataFrame({'a':[4,3,2,1,999], 'b':['u','r','s','t','u']})
df2

    a   b
0   4   u
1   3   r
2   2   s
3   1   t
4   999 u

我想获得一个新的数据框,其中包含出现在这两个行中的行(忽略索引)。所以上面的例子给出了一个数据帧

    a   b
0   4   u
1   2   s

我如何得到这个交集?

1 个答案:

答案 0 :(得分:13)

您只需执行merge,这将使用所有列,默认的合并类型为inner,因此dfs中必须存在值:

In [71]:

df1.merge(df2)
Out[71]:
   a  b
0  2  s
1  4  u