首页 > 解决方案 > Pandas groupby 错误:groupby() 至少需要 3 个参数(给定 2 个)

问题描述

我的数据框如下:

(cusid表示客户id;product表示客户购买的产品id;count表示该产品的购买数量。)

cusid   product count
1521    30  2
18984   99  1
25094   1   1
2363    36  1
3316    21  1
19249   228 1
13220   78  1
1226    79  4
1117    112 2


我想计算每个客户会购买的每种产品的平均数量。似乎需要在 cusid 中​​获取 groupby 产品,然后在 count 中获取 groupby 产品,然后获取平均值。我的期望输出:

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

不知道如何解决

标签: pythonpandasmachine-learning

解决方案


df.groupby(['cusid', 'product']).mean().reset_index().groupby('product')['count'].mean()

输出:

product
1      1
21     1
30     2
36     1
78     1
79     4
99     1
112    2
228    1

python版本:3.7.4 熊猫版本:0.25.0


推荐阅读