2017-02-24 16 views
2

두 변수에 groupby와 sum을 사용하고 있습니다. 두 번째 변수는 연도이며, 예를 들어 2015 년과 2016 년은 2 년입니다. 합계의 두 번째 행에 대해 첫 번째 변수 (ID #)가 표시됩니다. 어떻게 강제로 표시합니까?Pandas Groupby와 두 변수 합 -

코드 :

totals = df.groupby(by=['id', 'year'])['sales'].sum() 
print(totals) 

출력 샘플 : 내가 두 번째 행은 ID 1234567을 얻을 어떻게

1234567    2015    596407.81 
        2016   7224148.34 

?

답변

2

를 사용하여 매개 변수 as_index=Falsegroupby에서 :

totals = df.groupby(by=['id', 'year'], as_index=False)['sales'].sum() 
print(totals) 

또는 reset_index : 첫 번째 열에서 마지막 값을 참조하지 말아 이유

totals = df.groupby(by=['id', 'year'])['sales'].sum().reset_index() 
print(totals) 

이유는 MultiIndex

입니다