मेरे पास निम्नलिखित के रूप में डेटाफ्रेम है:

(क्यूसिड का अर्थ है ग्राहक आईडी; उत्पाद का अर्थ ग्राहक द्वारा खरीदी गई उत्पाद आईडी है; गणना का अर्थ है इस उत्पाद की खरीदी गई संख्या।)

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


मैं प्रत्येक ग्राहक द्वारा खरीदे जाने वाले प्रत्येक उत्पाद की औसत संख्या की गणना करना चाहता हूं। क्यूसिड में समूह द्वारा उत्पाद प्राप्त करने की आवश्यकता प्रतीत होती है, फिर समूह द्वारा उत्पाद गिनती में, फिर माध्य प्राप्त करें। मेरी उम्मीद आउटपुट:

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

पता नहीं इसे कैसे ठीक किया जाए

0
Poppy Bee 5 अगस्त 2019, 06:41

1 उत्तर

सबसे बढ़िया उत्तर
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

अजगर संस्करण: 3.7.4 पांडा संस्करण: 0.25.0

0
Wenmin Wu 5 अगस्त 2019, 12:13