Python 跳过日期的7天窗口

Python 跳过日期的7天窗口,python,pandas,time-series,Python,Pandas,Time Series,我有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

我有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
查看函数。对于您的示例来说,这是一条单行线:

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
s,可以添加
.fillna(0)

我认为在应用滚动和之前需要对数据进行重新采样。我假设起始数据帧由一个日期索引

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    591

您提出了一个非常好的问题,并附有您的输入和预期输出的示例。这有助于更容易回答。很好!我知道这类东西有一个函数。感谢您使用
min_periods=1
有深刻见解!我刚刚学到了一些东西。谢谢