我有一个如下所示的数据框:
(cusid表示客户ID;product表示客户购买的产品ID;count表示该产品的购买数量。)
cusid product count1521 30 218984 99 125094 1 12363 36 13316 21 119249 228 113220 78 11226 79 41117 112 2
我想计算每个客户购买每种产品的平均数量。似乎需要先按cusid分组,然后再按product分组,最后按count计算平均值。我期望的输出如下:
product mean(count)30 99 1 36
这是我的代码:
(df.groupby(['product','cusid']).mean().groupby('product')['count'].mean())
得到了以下错误:
TypeError Traceback (most recent call last)<ipython-input-43-0fac990bbd61> in <module>()----> 1 (df.groupby(['product','cusid']).mean().groupby('product')['count'].mean())TypeError: groupby() takes at least 3 arguments (2 given
我不知道如何修复这个问题
回答:
df.groupby(['cusid', 'product']).mean().reset_index().groupby('product')['count'].mean()
输出:
product1 121 130 236 178 179 499 1112 2228 1
Python版本:3.7.4
Pandas版本:0.25.0