我有一个包含4个变量DIVISION, QTR, MODEL_SCORE, MONTH的数据框架,变量X的总和由这4个变量聚合。
我想按DIVISION、QTR和MODEL SCORE对数据进行有效分区,并保持一个从MONTH FIELD顺序从小到大的运行总订单。这个想法是,如果它得到其他3列的新排列,它将重置
df = df.groupby(['DIVISION','MODEL','QTR','MONTHS'])['X'].sum()
我在
df['cumsum'] = df.groupby(level=3)['X'].cumsum()
尝试了所有的数字,我能想到的水平参数。它似乎可以按我想要的任何方式工作。
编辑:我知道下面的格式不理想,但基本上只要唯一改变的变量是MONTH,累积总和将继续,但任何其他变量都会导致它重置。
DIVSION QTR MODEL MONTHS X CUMSUM
A 1 1 1 10 10
A 1 1 2 20 30
A 1 2 1 5 5
很抱歉给你带来这么多麻烦,我相信答案比我想的要简单得多。
后df = df.groupby(['DIVISION','MODEL','QTR','MONTHS'])['X'].sum()
我应该重置索引,我不想要一个多索引,这似乎已经工作了。
df = df.reset_index()
df['cumsum'] = df.groupby(['DIVISION','MODEL','QTR'])['X'].cumsum()