如何计算每个用户的评级平均值?

时间:2015-12-22 06:18:39

标签: arrays python-2.7 pandas mean

假设我有一个这样的数据集:

userID productID rating
a          i       5
b          i       4
c          i       4 
a          j       3
b          j       5

问题是,如何计算每个用户的平均评分? 我看到了this answer,但我并不是很了解它。如果你有一些指导,我真的很感谢你的时间。

1 个答案:

答案 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 

enter image description here

由用户分组并计算每个的平均值:

In [2]: df.groupby('userID').mean()

enter image description here

您还可以在名为df的{​​{1}}中创建一个新列,并指定每个用户的平均得分:

user_avg_rating

enter image description here

方法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