2016-08-16 2 views
2

I가 다음 dataframe순회은

Existing Dataframe

나는 "분기 합계 총"두 개의 열을 추가하려면 "합계"의 (총 가치 100 %까지 추가 차트를 만들 수 있습니다 PARAM에 의해 분해는 "분기 총 %"적용) 및없이 - 보여 얼마나 비율은 시간이 지남에 따라 변경하고 100 % 불행하게도

enter image description here

까지 추가 누적 차트를 구축 한 나는 "pandas way"에서 "분기 중 합계"를 계산하는 데 문제가 있습니다. 나는 dataframe을 통해 세포에 의한 세포 차선 솔루션 같은 느낌 반복하고

for elements in df.index: 
df.ix[elements,3] = df[df['period']==df.ix[elements,0]]['stat'].sum() 
df['% of quarter total'] = df.stat/df.['stat total during quarter'] 

당신의 생각을 정말 감사하겠습니다을 %를 얻기 위해 다른 하나 열을 나누어 끝났다.

답변

2

각 기간의 합계를 계산하려면 groupby/transform을 사용하십시오. transform은 항상 원본 DataFrame과 동일한 길이의 계열을 반환합니다. 따라서 새 값인 df에 반환 값을 할당 할 수 있습니다.

df['stat total during quarter'] = df.groupby('period')['stat'].transform('sum') 
df['% of quarter total'] = df['stat']/df['stat total during quarter']