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

the*_*man 9 python dataframe pandas

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

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
Run Code Online (Sandbox Code Playgroud)

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

    a   b
0   4   u
1   2   s
Run Code Online (Sandbox Code Playgroud)

我怎么得到这个交集?

EdC*_*ica 14

你可以只执行一次merge,这将使用所有列,默认的合并类型是inner这样的值必须存在于两个dfs中:

In [71]:

df1.merge(df2)
Out[71]:
   a  b
0  2  s
1  4  u
Run Code Online (Sandbox Code Playgroud)