2016-05-10 129 views
1

比方說,我在熊貓數據幀有數據如下圖所示:熊貓查找多層次平均值

enter image description here

我想找到的描述性統計(平均數,中位數,標準開發)的:

    每個隊列
  1. 每個隊列的唯一用戶
  2. 每隊列每用戶評論
  3. 評論

因此對於輸出,我希望看到:每羣組

  1. 獨立用戶 - > [{A:3},{B:2},...],然後找到描述性統計對於系列
  2. 每個用戶每個羣組評論 - > [{(a,alex):2},{(b,alex):0},{(a,beth):1},{(b,beth) :3} ...]每羣組
  3. 評論 - > [{A:5},{b:6} ...]

我使用熊貓,並且我絕對粘在如何做某事 很簡單。我正在考慮使用.groupby(),但這並沒有產生明確的解決方案。我可以在沒有熊貓的情況下做到這一點,但我認爲這些是Pandas數據框的一些問題!?

謝謝!

+0

一些示例輸出將是有用的。 – piRSquared

+0

增加了我想看到的內容。謝謝! – Alex

+0

請不要用[R]標記python/pands問題,除非有很好的理由。 –

回答

2

解決方案

你可以使用

df.groupby(['Cohort', 'User']).describe() 

df.groupby(['Cohort']).describe() 

根據您所需的輸出

df.groupby(['Cohort'])['User'].apply(lambda x: x.describe().ix['unique']) 

df.groupby(['Cohort', 'User'])['Comment'].apply(lambda x: x.describe().ix['unique']) 

df.groupby(['Cohort'])['Comment'].apply(lambda x: x.describe().ix['unique']) 
+0

那些給了我對由'['cohort','user']'分組的數值的描述統計,但我對分組計數本身很感興趣。感謝您的幫助! – Alex

+0

我認爲就是這樣!我剛剛添加了'.describe()',並獲得了我需要的摘要統計信息。謝謝! – Alex

2
>>> df.groupby('Cohort').User.apply(lambda group: group.unique()) 
Cohort 
a [alex, beth, craig] 
b   [beth, craig] 
Name: User, dtype: object 

>>> df.groupby('Cohort').User.apply(lambda group: group.nunique()) 
Out[40]: 
Cohort 
a 3 
b 2 
Name: User, dtype: int64 

>>> df.groupby(['Cohort', 'User']).Comment.count() 
Out[43]: 
Cohort User 
a  alex  2 
     beth  1 
     craig 2 
b  beth  3 
     craig 3 
Name: Comment, dtype: int64 

df.groupby(['Cohort']).Comment.count() 
Out[44]: 
Cohort 
a 5 
b 6 
Name: Comment, dtype: int64 
+0

感謝此代碼。這對於更好地理解正在發生的事情非常有幫助。 – Alex