从数据框中获取所有行,这些行具有来自另一个数据框的匹配值

Get all rows from a dataframe, which have matching values from another data frame

我有两个数据框,拿下面的例子

df1

userid| name  
    33|  Paul   
    2 |  jack   
    32|  Ryan   

df2

userid| sport | song 
79 |  tennis  | lovelies  
33 |  swimmin | Beatles  
21 |  boxing  | stones  

我如何获得 df3,如果用户 ID 在 df1 和 df2 之间匹配,我希望 df3 仅包含 df2 中与 df1 匹配的那些行

我认为 JOIN 不是这里的答案,因为我只需要 df2 中的行。不是 df1.

中的行

谢谢!

使用pandas.Series.isin

df2[df2['userid'].isin(df1['userid'])]

输出

   userid      sport        song 
1      33    swimmin    Beatles