查找两个 Pandas 数据框中的公共行(交集)

2024-05-30

假设我有两个这种格式的数据框(称它们为df1 and df2):

+------------------------+------------------------+--------+
|        user_id         |      business_id       | rating |
+------------------------+------------------------+--------+
| rLtl8ZkDX5vH5nAx9C3q5Q | eIxSLxzIlfExI6vgAbn2JA |      4 |
| C6IOtaaYdLIT5fWd7ZYIuA | eIxSLxzIlfExI6vgAbn2JA |      5 |
| mlBC3pN9GXlUUfQi1qBBZA | KoIRdcIfh3XWxiCeV1BDmA |      3 |
+------------------------+------------------------+--------+

我正在寻找具有共同点的所有行的数据框user_id in df1 and df2。 (即,如果user_id都在df1 and df2,包括输出数据框中的两行)

我可以想出很多方法来解决这个问题,但它们都让我觉得笨拙。例如,我们可以找到所有独特的user_id每个数据帧中的 s ,创建每个数据帧的集合,找到它们的交集,用结果集过滤两个数据帧并将两个过滤后的数据帧连接起来。

也许这是最好的方法,但我知道 Pandas 很聪明。有没有更简单的方法来做到这一点?我看过merge但我不认为那是我需要的。


我的理解是这个问题可以更好地回答这个帖子 https://stackoverflow.com/questions/26921943/pandas-intersection-of-two-data-frames-based-on-column-entries.

但简单来说,用这种方法对OP的回答很简单:

s1 = pd.merge(df1, df2, how='inner', on=['user_id'])

这使s1有 5 列:user_id以及每个的其他两列df1 and df2.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

查找两个 Pandas 数据框中的公共行(交集) 的相关文章

随机推荐