假設我有一個這樣的數據集:如何計算每個用戶的收視率平均值?
userID productID rating
a i 5
b i 4
c i 4
a j 3
b j 5
的問題是,我怎麼能計算每個用戶的平均等級? 我看到this answer,但我不太明白。如果你展示一些指導,我會非常感謝你的時間。
假設我有一個這樣的數據集:如何計算每個用戶的收視率平均值?
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://stackoverflow.com/help/accepted-answer)一個答案。 –
請發佈[最小,完整和可驗證示例](http://stackoverflow.com/help/mcve)。所有相關部分應該在你的問題中,而不是在鏈接中(目前不起作用)。 –
我仔細檢查了鏈接,他們工作。我想我給出的例子很少。儘管我嘗試過。對不起,我是初學者。 – Silvia07
好的。其中一個鏈接現在起作用。另一個仍然給*對不起,出了點問題。*這可能會自行解決。但是工作簿非常大。當您發佈自我包含的問題以及迄今爲止的嘗試時,您會得到最快最好的答案。 –