Python 如何计算数据场中两个组在特定时间段内的增量支出

Python 如何计算数据场中两个组在特定时间段内的增量支出,python,r,pandas,numpy,data-analysis,Python,R,Pandas,Numpy,Data Analysis,我有一个包含以下信息的大数据框架,其中day列以dd/mm/yy格式显示日期。比如, 用户ID组日sp PU新建 0213测试6/10/14 4$628.14测试红色 1314控制6/10/14 15$29.98控制 2354测试13/10/14 4$554.58测试未退还 3 2131测试1 13/10/14 2$60.41测试红色 4 314控制1 13/10/14 1$8.71控制 5354测试1 20/10/14 1$165.63测试未回收 我需要计算总测试组红色测试和非红色测试与对照组

我有一个包含以下信息的大数据框架,其中day列以dd/mm/yy格式显示日期。比如,

用户ID组日sp PU新建 0213测试6/10/14 4$628.14测试红色 1314控制6/10/14 15$29.98控制 2354测试13/10/14 4$554.58测试未退还 3 2131测试1 13/10/14 2$60.41测试红色 4 314控制1 13/10/14 1$8.71控制 5354测试1 20/10/14 1$165.63测试未回收 我需要计算总测试组红色测试和非红色测试与对照组在6周内的增量花费。我需要以绝对美元或%显示结果。 我所尝试的

df.groupby(by=['PU','day']).sum().groupby(level=[0]).cumsum()
这给了我每组的绝对和,但是 例外的答案是这样的,每组也有%

Control             $# 
Test - NonRed       $# 
Test - Red          $#
Total Result        $#

任何帮助都会很好

你只需要几步就可以到达那里

df.PU=df.PU.str[1:].astype(float)
df.day=pd.to_datetime(df.day)
new1=pd.pivot_table(df,index='new',columns='day',values='PU',aggfunc=sum,fill_value=0,margins=True)
new1=new1.drop('All',1)
new1.cumsum(1)
Out[263]: 
day          2014-06-10 00:00:00  2014-10-13 00:00:00  2014-10-20 00:00:00
new                                                                       
control                    29.98                38.69                38.69
test-NonRed                 0.00               554.58               720.21
test-Red                  628.14               688.55               688.55
All                       658.12              1281.82              1447.45

试过pd.Series.cumsum?为什么你把这个标记为r?r或python中的任何解决方案对我都有好处,你的预期结果是什么?我的预期输出是总测试组与对照组在虚拟数据框中提到的3周内以绝对美元或%表示的增量支出。感谢结果,但我需要%和绝对数表示的总和,我在groupby中尝试过,比如,in_expense.groupbyby=['PU','day'].sum.groupbylevel=[0].cumsum,它给了我绝对数,但是我没有我的solution@user1017373将aggfunc改为pct_change谢谢,对不起,在我的主要问题中有一个小的编辑,每个组的增量支出,即红色测试,和对照组比较