Python 我应该如何计算有多少用户对特定电影ID进行了评级?
我想统计一下有多少用户对特定的电影ID进行了评级?我尝试过使用pandas.iloc,但结果仍然不如预期。预期产出如下: 例如,我使用MovieLens数据集,假设movieId302实际上有总共10个用户id对这部特定电影进行了评级 数据在dataframe中。你认为我应该用什么方法来达到预期的效果?如果我能向你学习,我真的很感激。多谢各位Python 我应该如何计算有多少用户对特定电影ID进行了评级?,python,pandas,numpy,dataframe,Python,Pandas,Numpy,Dataframe,我想统计一下有多少用户对特定的电影ID进行了评级?我尝试过使用pandas.iloc,但结果仍然不如预期。预期产出如下: 例如,我使用MovieLens数据集,假设movieId302实际上有总共10个用户id对这部特定电影进行了评级 数据在dataframe中。你认为我应该用什么方法来达到预期的效果?如果我能向你学习,我真的很感激。多谢各位 !wget "http://files.grouplens.org/datasets/movielens/ml-100k.zip" !unzip ml-1
!wget "http://files.grouplens.org/datasets/movielens/ml-100k.zip"
!unzip ml-100k.zip
!ls
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
data = pd.read_csv("ml-100k/u.data", sep='\t',names="userId,movieId,rating,timestamp".split(","))
data
假设一个用户不能对同一部电影进行两次评分,首先您可以尝试:
df.groupby('movieId')['userId'].count().reset_index(name='userIdCount')
(reset_index()将其作为数据帧返回)
然后,您将有:
movieId userIdCount
0 1 5
1 2 1
2 3 2
如果要确保没有用户ID多次投票,您还可以使用:
df.groupby('movieId')['userId'].nunique().reset_index(name='userIdCount')
相反,发布一个5行的示例datafreme,它可以重现您的问题,用户可以尝试找到解决方案,还可以发布一个预期的数据帧结果这个答案是否涵盖了您要查找的内容?谢谢你,戈洛米,你的建议太棒了!你是如何做到的?我花了几个小时研究它,但仍然不知道如何解决,但你可以在一个小时内得到它的权利,这是我应该学习的东西。非常感谢你的帮助。我将学习更多关于groupby的知识,并了解解决方案。嗨,这就是你的学习方式!从现在起,你会意识到这个工具,当你面对挑战时,你会发现其他工具,过一段时间,它就会变得自然