我有一个多索引数据框,显示每月频率的交易总和。
我试图每年获得一个尊重我的'mapid'和'service'多指数的cumsum()。但是我不知道如何推导出那些数据
combined_df = combined_df.groupby([pd.Grouper(freq='M'), 'provider', 'mapid', 'service']).sum()
cost
datetime provider mapid service
2017-08-31 Amazon 10147.0 Monitor 0.41
Storage 90.51
Virtual Machine 11646.32
2017-09-30 Amazon 10147.0 Monitor 0.89
Storage 226.06
Virtual Machine 32624.91
2017-10-31 Amazon 10147.0 Monitor 0.17
Storage 261.72
Virtual Machine 36934.93
2017-11-30 Amazon 10147.0 Monitor 0.35
Storage 269.06
Virtual Machine 30790.70
我想得出以下结果
答案 0 :(得分:3)
在MultiIndex
的最后一级进行分组,并致电DataFrameGroupBy.cumsum
:
combined_df['cumsum'] = combined_df.groupby(level=-1)['cost'].cumsum()