Python 如何计算数据场中两个组在特定时间段内的增量支出
我有一个包含以下信息的大数据框架,其中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周内的增量花费。我需要以绝对美元或%显示结果。 我所尝试的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测试未回收 我需要计算总测试组红色测试和非红色测试与对照组
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谢谢,对不起,在我的主要问题中有一个小的编辑,每个组的增量支出,即红色测试,和对照组比较