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')
在我的问题中添加了一个例子。如果它解决了你的问题,你可以给出答案。谢谢你的帮助,迈克!亲爱的迈克,代码工作得很好,再次感谢!