Arrays 如何计算每个用户的平均评分?

Arrays 如何计算每个用户的平均评分?,arrays,python-2.7,pandas,mean,Arrays,Python 2.7,Pandas,Mean,假设我有这样一个数据集: userID productID rating a i 5 b i 4 c i 4 a j 3 b j 5 问题是,如何计算每个用户的平均评分? 我看到了,但我不太明白。如果您能给我一些指导,我将非常感谢您的时间 我在IPython笔记本上工作 假设您有此文件user\u ratings.csv: userID pro

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

userID productID rating
a          i       5
b          i       4
c          i       4 
a          j       3
b          j       5
问题是,如何计算每个用户的平均评分?
我看到了,但我不太明白。如果您能给我一些指导,我将非常感谢您的时间

我在IPython笔记本上工作

假设您有此文件
user\u ratings.csv

userID productID rating
a          i       5
b          i       4
c          i       4
a          j       3
b          j       5
链接中的示例使用熊猫。因此,进口熊猫:

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
中创建一个名为
user\u avg\u 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

本系列被分配到
user\u avg\u rating

列,请发布一篇文章。所有相关部分应该在你的问题,而不是在链接(目前不工作)。我仔细检查了链接,他们的工作。我想我举的例子是最小的。我试过了。对不起,我是初学者。其中一个链接现在可以工作了。另一个仍然很抱歉,出了点问题。这可能会自行解决。但是工作簿确实很大。当你发布自足的问题和迄今为止的尝试时,你将得到最快和最好的答案。谢谢。我删除了链接。让我们专注于上面的例子。因为它非常接近我正在处理的数据。非常感谢!另一个小问题:如何将此平均评级列添加到第一个数据集中?我想代码应该是这样的?--
df['user\u avg\u rating']=df.groupby('user\u id')['user\u id'])。transform('mean')
在我的问题中添加了一个例子。如果它解决了你的问题,你可以给出答案。谢谢你的帮助,迈克!亲爱的迈克,代码工作得很好,再次感谢!