python - 7 天窗口(包含跳过的日期)

标签 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
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/

相关文章:

python - 存储整数列表的最有效方法

python - 如何将 Pandas 数据框转换为命名元组

python - 循环遍历 excel 文件做一些事情并将它们保存到新文件夹 python pandas

javascript - 0 用 d3 系列数据填充空值

python - 在时间序列数据框中选择一小时的数据

python - cx_Freeze 和 networkx 的问题

java - 为什么PHP构造函数是一个方法?

python - Pandas 按连续数字分组

python - DataFrame 到列表的列表而不更改值的数据类型

r - 将两个 xts 时间序列合并到一个流中