2014-05-01 162 views
0

我有一個數據幀:分組和計算頻率,熊貓

df = pd.DataFrame({'Type' : ['Pokemon', 'Pokemon', 'Bird', 'Pokemon', 'Bird', 'Pokemon', 'Pokemon', 'Bird'],'Name' : ['Jerry', 'Jerry', 'Flappy Bird', 'Mudkip','Pigeon', 'Mudkip', 'Jerry', 'Pigeon']}) 

,我需要一羣w.r.t它們的類型即所有口袋妖怪類型各自的名字連在一起的意見。我需要添加另一個列,其中有類型名稱的出現頻率。它應該看起來像:

Type   Name  Frequency 
Pokemon  Jerry  3 
      Mudkip  2  

Bird   Pigeon  2 
      Flappy Bird 1 

我用:

data2 = df.groupby(['Type']) 

但也不至於組它它需要的方式。
請幫忙。

回答

6

我想你想組兩個「類型」和「名稱」:

print df.groupby(['Type','Name']).size() 

Type  Name  
Bird  Flappy Bird 1 
     Pigeon   2 
Pokemon Jerry   3 
     Mudkip   2 

或者,如果有一個名爲「頻率」列是很重要的,你可以不喜歡以下內容:

print df.groupby(['Type','Name'])['Type'].agg({'Frequency':'count'}) 

        Frequency 
Type Name     
Bird Flappy Bird   1 
     Pigeon    2 
Pokemon Jerry    3 
     Mudkip    2 
+1

我可以從上面的組創建一個字典嗎? 「Bird」這個關鍵詞將會包含一個包含['Pigeon',Flappy Bird']的列表,值得注意的是更高的頻率應該首先出現。 –