Python 从一个数据帧获取所有行,这些行具有来自另一个数据帧的匹配值
我有两个数据帧,以下面的示例为例 df1 df2 如果用户ID在df1和df2之间匹配,我希望df3只包含df2中与df1匹配的行,那么如何获得df3呢 我不认为连接是这里的答案,因为我只需要来自df2的行。不是df1中的行Python 从一个数据帧获取所有行,这些行具有来自另一个数据帧的匹配值,python,pandas,numpy,dataframe,querying,Python,Pandas,Numpy,Dataframe,Querying,我有两个数据帧,以下面的示例为例 df1 df2 如果用户ID在df1和df2之间匹配,我希望df3只包含df2中与df1匹配的行,那么如何获得df3呢 我不认为连接是这里的答案,因为我只需要来自df2的行。不是df1中的行 谢谢 使用pandas.Series.isin df2[df2['userid'].isin(df1['userid'])] 输出 这是个骗局,你在找merge它更像是一个isinno?我不想要来自df1的名字。我只需要df2中的所有行。非常感谢这非常有帮助。只是澄清一下
谢谢 使用
pandas.Series.isin
df2[df2['userid'].isin(df1['userid'])]
输出
这是个骗局,你在找merge它更像是一个
isin
no?我不想要来自df1的名字。我只需要df2中的所有行。非常感谢这非常有帮助。只是澄清一下,如果我在df1中的两个不同列中有用户ID,那么df2[df2['userid'].isin(df1['userid1']).isin(df1['userid2'])会不会工作?这完全取决于你想要什么,你正在那里做一个和操作,如果你想要的话,那么代码是正确的。这个答案实际上对我不起作用,因为它只生成了更多的列,我无法得到一个数据框。结果数据框有0行,匹配值作为columnsLet us生成。
userid| sport | song
79 | tennis | lovelies
33 | swimmin | Beatles
21 | boxing | stones
df2[df2['userid'].isin(df1['userid'])]
userid sport song
1 33 swimmin Beatles