2017-02-22 5 views
1

내 대륙을 내 인덱스 필드로 만든 데이터 프레임이 있습니다. 나는 조금 다른 것을 보여주고 싶다. 나는데이터 프레임에 계산 된 열을 그룹화하고 추가합니다.

Continent Country  

Oceania Australia 53  154.3 203.6 209.9 
Europe Austria 28.2 49.3 59.7 59.9 
Europe Belgium 33.2 70.3 83.4 82.8 
Europe Denmark 18.6 26.0 38.9 36.1 
Asia  Japan  382.9 835.5 1028.1 1049.0 

그래서 내 출력은 같을 것이다 카운트로 표시하는 데 불과 3 개 대륙을 위해 dataframe을 얻고 그 대륙에 속하는 모든 국가를하고 싶습니다 : 그것은 단지를 보여줄 것입니다 그 대륙 아래의 국가 수. 나는 그것의 모든 나는 이러한 열을 만들려고 한

Continent num_Countries  mean 

Oceania  1    209.9 
Europe  3    328.2 
Asia   1    382.9 

각 대륙 해내하지만 내가 얻을 수 있도록 그 나라를 위해 모든 것을 평균을 제공 NUM_COUNTRIES에 모든 것을 결합하는 경우에도 그것이 싶습니다 생성 할 새 열을 만들고 Nan 값으로 올 때 대륙에 대해 groupby() 함수를 원하는 방식으로 작동시키지 않습니다. 모든 대륙을 대륙으로 표시하기 때문에 작동하지 않습니다. 대륙과 국가의 전체 목록.

답변

0

여기에 피벗 테이블을 사용할 수 있습니다. '대륙'에 의해

df.pivot_table(index="Continent", values=["Country", "1"], 
       aggfunc=('count', 'mean')) 
0

다음 그룹 (I 1 ~ 4로 레이블이없는 열을 표시) 수단의 평균 (나는이 가정 국가의 수를 계산하고 발견 기능을 적용하면 이후 원했던 것입니다 대륙마다 여러 국가의 숫자 데이터가 4 열 있습니다).

def f(group): 
    return pd.DataFrame([{'num_Countries': group.Country.count(), 
          'mean': group.mean().mean()}]) 
grouped = df.groupby('Continent') 
result = grouped.apply(f).reset_index(level=1, drop=True) 
+0

네, 고마워! – Cannon

관련 문제