我发现Pandas groupby 累积总和并发现它非常有用。但是,我想确定如何计算反向累积和。
该链接建议如下。
df.groupby(by=['name','day']).sum().groupby(level=[0]).cumsum()
Run Code Online (Sandbox Code Playgroud)
为了反转总和,我尝试对数据进行切片,但失败了。
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
Run Code Online (Sandbox Code Playgroud)
编辑:根据反馈,我尝试实现代码并使数据框更大:
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' : …Run Code Online (Sandbox Code Playgroud)