我有300个体育场馆的数据,在一个体育场里,每次有一场比赛,我都会有多少游客。每天没有一场比赛。
对于每个体育场,我想产生一个系列,提供一个滚动的7天的游客总数。我希望该系列的跨度尽可能小,以便该系列在第一场比赛前7天开始,并在最后一场比赛的日期结束。
这是一个特定体育场的数据:
Game_date
2013-05-20 122
2013-06-27 350
2013-10-08 105
2013-10-10 100
2013-12-22 165
2013-12-24 55
2014-01-05 321
2014-01-06 71
2014-01-07 199我希望输出的示例如下:
Date
...
2014-01-03 0
2014-01-04 0
2014-01-05 321
2014-01-06 392
2014-01-07 591发布于 2014-11-19 18:23:50
查看总和函数。这是你的例子的一条线:
In [48]: pd.rolling_sum(df, window=7, freq='D', min_periods=1)
Out[48]:
Game_date
2013-05-20 122
2013-05-21 122
2013-05-22 122
...
2014-01-04 NaN
2014-01-05 321
2014-01-06 392
2014-01-07 591如果不喜欢.fillna(0)的话,可以添加NaN。
发布于 2014-11-19 18:35:04
我认为在应用滚动和之前,数据需要重放。我假设起始日期是以熊猫日期为索引的。
df = df.resample('D').fillna(0)
print df.tail()
seats
game_date
2014-01-03 0
2014-01-04 0
2014-01-05 321
2014-01-06 71
2014-01-07 199这样就用零填充了所有缺失的日期。现在我们可以应用滚动和。
print pd.rolling_sum( df, 7 ).tail()
seats
game_date
2014-01-03 0
2014-01-04 0
2014-01-05 321
2014-01-06 392
2014-01-07 591https://stackoverflow.com/questions/27023522
复制相似问题