是否有内置函数允许仅选择在 pandas 中具有匹配列值的行?
例如,我有一个 pandas 数据框,它由用户列、他们评价的每个电影项目以及他们给它的评价组成(见下文)。有没有办法使用 numpy 或 pandas 快速选择两个用户都评价过的电影?换句话说,输出已被相关用户 (a) 和所有其他用户评分的所有电影的列表/数组/数据框?
在下面的示例中,所有用户都对电影 7 进行了评分。因此,对于用户 (a)=8 的查询,理想情况下会输出该用户和其他所有用户的所有常见评分。
user movie rating
8 7 5.0
8 1333 3.0
50 3321 1.0
50 3363 2.0
50 7 3.0
83 50 4.0
83 7 5.0
etc etc etc
output for user 8
50 7 3.0
83 7 5.0
请您参考如下方法:
也许是这样的:
In [11]: df.loc[(df["user"] != 8) & (df["movie"].isin(df.loc[(df.user == 8), "movie"]))]
Out[11]:
user movie rating
4 50 7 3.0
6 83 7 5.0
