2014-10-23 7 views
1

나는 다음과 같은 팬더 dataframe 있습니다파이썬/팬더 누계

Date   BrokenRule Cost 
2014-01-01 abc   100 
2014-01-02 xyz   50 
2014-01-03 abc   40 
2014-01-04 xyz   70 
2014-01-05 xyz   10 

내가 다음 linecharts으로 그릴 수 각 BrokenRule의 실행 Cost 합계를 계산해야합니다.

모든 BrokenRule에서 누적 합계를 계산하려면 cumsum()을 사용하면됩니다. 그러나 각 BrokenRule에 대한 누적 합계를 표시하는 방법을 알아낼 수 없습니다. 아마도 cumsum()groupby()을 함께 사용했지만 작동하지 못했습니다.

제안 사항? 감사

+0

그리고'df.groupby ('BrokenRule') [ 'Cost']. cumsum()'가 작동하지 않습니까? – joris

+0

제안을 주셔서 감사합니다. @joris하지만 불행히도 작동하지 않습니다. – darkpool

+0

좋은 답변이 이미 있습니다.하지만 제안으로 : "작동하지 않습니다"라고 말하면 작동하지 않는 것을 "보여줘야"합니다. 예 : 최소한 오류 메시지 또는 예상 된 출력을 제공하십시오. – joris

답변

2

코드 언 스택 바이

 
      Cost  
BrokenRule abc xyz 
Date     
2014-01-01 100 0 
2014-01-02 100 50 
2014-01-03 140 50 
2014-01-04 140 120 
2014-01-05 140 130 

df.set_index("BrokenRule", append=True).unstack().fillna(0).cumsum() 

결과 인덱스 새로 추가 BrokenRule 수준은 우리는 그 열의 각 값에 대한 항목을 만든다. 0으로 채운 다음 cumsum (기본적으로 열 단위)을 수행하면 예상되는 결과를 얻을 수 있습니다.

+0

우수함 완벽하게 작동합니다. 감사합니다 @filmor. 이것이 작동하는 방식을 정확하게 이해하고 시도하는 데 시간이 걸릴 것입니다. – darkpool

+1

단계별로 해보십시오. 중요한 부분은'unstack' 호출뿐입니다. – filmor

관련 문제