假设我有两个这种格式的数据框(称它们为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(使用前将#替换为@)