如何计算每个用户的收视率平均值?
假设我有一个这样的数据集:如何计算每个用户的收视率平均值?
userID productID rating
a i 5
b i 4
c i 4
a j 3
b j 5
的问题是,我怎么能计算每个用户的平均等级? 我看到this answer,但我不太明白。如果你展示一些指导,我会非常感谢你的时间。
我在IPython Notebook中工作。
让我们假设你有这样的文件user_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_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
本系列被分配到列user_avg_rating
。
非常感谢!另一个小问题:如何将此平均评分列添加到第一个数据集?我认为代码会是这样的? - 'df ['user_avg_rating'] = df.groupby('user_id')['user_id']。transform('mean')' – Silvia07
为我的问题增加了一个例子。 –
如果解决了您的问题,您可以[接受](http://*.com/help/accepted-answer)一个答案。 –
请发布[最小,完整和可验证示例](http://*.com/help/mcve)。所有相关部分应该在你的问题中,而不是在链接中(目前不起作用)。 –
我仔细检查了链接,他们工作。我想我给出的例子很少。尽管我尝试过。对不起,我是初学者。 – Silvia07
好的。其中一个链接现在起作用。另一个仍然给*对不起,出了点问题。*这可能会自行解决。但是工作簿非常大。当您发布自我包含的问题以及迄今为止的尝试时,您会得到最快最好的答案。 –