2017-09-30 5 views
0

나는 다음과 같은 데이터 프레임 (DF)이 있습니다GROUPBY는, 평균을 찾아 별도의 열을 계산

Items    Category  Quantity  Weight(each) 
Spoon    Kitchen  2    0.7 
Tent    Shelter  1    80.0 
Sleeping Bag  Shelter  1    20.0  
Sunscreen   Health   2    5.0 
Water Bottles  Kitchen  2    35.0 

내가 각 카테고리의 양을 계산하려면, 카테고리별로 가중치의 평균을.

원하는 출력 :

   count(Quantity)   mean(Weight) 
Category  
Kitchen   4      17.5 
Shelter   2      50.0 
Health   2      5.0 

나는 별도로 작업을 수행하는 방법을 알고있다. 하지만 어떻게 병합 할 지 모르겠습니다. 별도로 :

df.groupby('Category')['Quantity'].agg(['count']) 

df.groupby('Category')['Weight(each)'].agg(['mean']) 
+2

그리고 참조 [여러 GROUPBY의 컬럼에 여러 기능을 적용 (https://stackoverflow.com/questions/14529838/apply-multiple-functions-to-multiple-groupby-columns) – Zero

답변

3

나는 당신이 dict로 전달 groupby + agg을 찾고 생각합니다.

df.groupby('Category').agg({'Quantity' : 'sum', 'Weight(each)' : 'mean'}) 

      Weight(each) Quantity 
Category       
Health   5.00   2 
Kitchen   17.85   4 
Shelter   50.00   2 
+0

예 정확하게. 감사. 나는 그 사전에 대해 몰랐다. 멋진데 :) – sheldonzy

관련 문제