2014-05-01 7 views
0

은 내가 dataframe 있습니다그룹화 및 컴퓨팅 주파수, 팬더

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']) 

을하지만 그룹 그것을 그것을 할 필요가 길을하지 않습니다.
도와주세요.

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

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

아니면이 '주파수'라는 이름의 컬럼을하는 것이 중요합니다, 당신은 다음과 같은 일을 할 수있는 :

답변

6

난 당신이 모두 '형'과 '이름'에 그룹화 할 생각

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 ']가 포함 된 목록의 값을 가지게됩니다. 더 높은 빈도가 먼저 나타나야합니다. –