2013-06-27 222013-06-28 32013-06-29 52013-06-30 102013-07-01 172013-07-02 142013-07-03 92013-07-04 7
样本输入是:
数据 </跨度> = [(‘2013-06-21’,14), (‘2013-06-22’,19 ), ( ‘2013-07-02’,14), ( ‘2013年7月3日’,9), ( ‘2013年7月4日’,7)]
现在我想做一个滚动 聚合 </跨度> 并存储 聚合 </跨度> 。通过滚动 聚合 </跨度> 我的意思是说第1周(2013-06-21到
看到这个答案: 专栏的累计金额和百分比?
还有这个: http://pandas.pydata.org/pandas-docs/stable/basics.html#basics-dt-accessors 还有这个: http://pandas.pydata.org/pandas-docs/stable/groupby.html
更新为每周累积:
df = pd.DataFrame(data) df.columns = ['Date','Profit'] df['Date'] = pd.to_datetime(df['Date']) df['weekofyear'] = df['Date'].dt.weekofyear df.reset_index('Date') df.sort_index(inplace=True) df['Weekly_Cum'] = df.groupby('weekofyear').cumsum()
输出:
Date Profit weekofyear Weekly_Cum 0 2013-06-21 14 25 14 1 2013-06-22 19 25 33 2 2013-06-23 11 25 44 3 2013-06-24 13 26 13 4 2013-06-25 6 26 19 5 2013-06-26 22 26 41 6 2013-06-27 22 26 63 7 2013-06-28 3 26 66 8 2013-06-29 5 26 71 9 2013-06-30 10 26 81 10 2013-07-01 17 27 17 11 2013-07-02 14 27 31 12 2013-07-03 9 27 40 13 2013-07-04 7 27 47
只是在@liam-foley答案中的一个小修复:
df['year'] = df.index.year df['weekofyear'] = df.index.weekofyear df['Weekly_Cum'] = df.groupby(['year', 'weekofyear']).cumsum()
否则,cumsum将计算索引中所有年份的相同工作日。