假设我有一个这样的数据集:
userID productID rating
a i 5
b i 4
c i 4
a j 3
b j 5
问题是,如何计算每个用户的平均评分? 我看到了this answer,但我并不是很了解它。如果你有一些指导,我真的很感谢你的时间。
答案 0 :(得分:0)
我在IPython Notebook工作。
我们假设您拥有此文件user_ratings.csv
:
userID productID rating
a i 5
b i 4
c i 4
a j 3
b j 5
链接中的示例使用pandas。所以导入大熊猫:
In [1]: import pandas as pd
将您的文件读入数据框:
In [2]: df = pd.read_csv('user_ratings.csv', delim_whitespace=True)
df
由用户分组并计算每个的平均值:
In [2]: df.groupby('userID').mean()
您还可以在名为df
的{{1}}中创建一个新列,并指定每个用户的平均得分:
user_avg_rating
方法In [3]: df['user_avg_rating'] = df.groupby('userID')['rating'].transform('mean')
df
获取您的分组对象并创建一个系列:
transform
此系列已分配到列In [4]: df.groupby('userID')['rating'].transform('mean')
0 4.0
1 4.5
2 4.0
3 4.0
4 4.5
dtype: float64
。