2016-11-26 81 views
1

我有一個數據幀,看起來像這樣:創建重複記錄的新的平均得分[用戶ID,商品ID]

userid itemid score 
1  5  4 
2  3  10 
1  5  20 
2  3  30 

我想這個數據幀轉換爲:

userid itemid score 
1  5  22 
2  3  20 

我計劃使用2 for循環來做到這一點。不過,我想知道是否有任何推薦的方法來完成這項任務? groupby似乎不起作用,因爲它沒有average功能。任何幫助?

+2

你正在尋找[Groupby.mean()](http://pandas.pydata.org/pandas-docs/stable/generated /pandas.core.groupby.GroupBy.mean.html) – MaxU

回答

1

嘗試使用groupbysum

df.groupby(['userid', 'itemid']).mean() 

enter image description here

+0

感謝您的回答!如果還有其他一些列,它如何知道「score」列的平均值? – renakre

+0

您可以根據需要進行調整,並且您提供的信息越多越好。我所提供的將會找到每個數字列的意思。 – piRSquared

+0

我明白了。我可以再問一個問題:爲什麼你認爲'userid'和'itemid'列沒有包含在輸出結果集中? – renakre