나는 Pandas groupby cumulative sum을 발견했으며 매우 유용하다고 생각했습니다. 그러나 역 누적 합계를 계산하는 방법을 결정하고 싶습니다.팬더 파이썬 Groupby 누적 합계 역방향
링크는 다음을 제안합니다.
df.groupby(by=['name','day']).sum().groupby(level=[0]).cumsum()
합계를 반전시키기 위해 데이터 조각을 시도했지만 실패했습니다. 의견을 바탕으로, 내가 코드를 구현하고 dataframe 더 크게 만들려고 : 컬럼의 수에
import pandas as pd
df = pd.DataFrame(
{'name': ['Jack', 'Jack', 'Jack', 'Jill', 'Jill'],
'surname' : ['Jones','Jones','Jones','Smith','Smith'],
'car' : ['VW','Mazda','VW','Merc','Merc'],
'country' : ['UK','US','UK','EU','EU'],
'year' : [1980,1980,1980,1980,1980],
'day': ['Monday', 'Tuesday','Wednesday','Monday','Wednesday'],
'date': ['2016-02-31','2016-01-31','2016-01-31','2016-01-31','2016-01-31'],
'no': [10,30,50,40,40],
'qty' : [100,500,200,433,222]})
나는 다음 시도
및 그룹 만이 그룹화를 적용하지 EDIT이
df.groupby(by=['name','day']).ix[::-1, 'no'].sum().groupby(level=[0]).cumsum()
Jack | Monday | 10 | 90
Jack | Tuesday | 30 | 80
Jack | Wednesday | 50 | 50
Jill | Monday | 40 | 80
Jill | Wednesday | 40 | 40
.
df = df.groupby(by=['name','surname','car','country','year','day','date']).sum().iloc[::-1].groupby(level=[0]).cumsum().iloc[::-1].reset_index()
왜 그렇습니까? 잭 마이스다와 함께 잭 존스가 폭스 바겐이있는 잭 존스와는 별도의 누적량이 될 것으로 기대합니다.
@BradSolomon을, 어떻게하여 그룹을 포함하는 didnt가 쇼를 참조 불행하게도 링크. 내 업데이트 된 게시물을보고 이것이 더 명확한 지 알려주십시오 - 작업 할 때 그룹을 확보하지 못하는 것 같습니다. – Travis