我有 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
最佳答案
查看 rolling_sum功能。对于您的示例来说,这是一个单行:
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
如果您不喜欢 NaN
,可以添加 .fillna(0)
。
关于python - 7 天窗口(包含跳过的日期),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27023522/