带跳过日期的7天窗口

2024-05-29 05:16:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我有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

Tags: 数据game示例date观众人数跨度总数
2条回答

我认为在应用滚动和之前,数据需要重新取样。我假设起始数据帧是按日期索引的。你知道吗

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

查看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)

相关问题 更多 >

    热门问题