使用pandas,在前n个元素上计算滚动cumsum的最简单方法是什么,例如计算尾随三天的销售额:
df = pandas.Series(numpy.random.randint(0,10,10), index=pandas.date_range('2020-01', periods=10))
df
2020-01-01 8
2020-01-02 4
2020-01-03 1
2020-01-04 0
2020-01-05 5
2020-01-06 8
2020-01-07 3
2020-01-08 8
2020-01-09 9
2020-01-10 0
Freq: D, dtype: int64
Run Code Online (Sandbox Code Playgroud)
期望的输出:
2020-01-01 8
2020-01-02 12
2020-01-03 13
2020-01-04 5
2020-01-05 6
2020-01-06 13
2020-01-07 16
2020-01-08 19
2020-01-09 20
2020-01-10 17
Freq: D, dtype: int64
Run Code Online (Sandbox Code Playgroud)
你需要rolling.sum:
df.rolling(3, min_periods=1).sum()
Out:
2020-01-01 8.0
2020-01-02 12.0
2020-01-03 13.0
2020-01-04 5.0
2020-01-05 6.0
2020-01-06 13.0
2020-01-07 16.0
2020-01-08 19.0
2020-01-09 20.0
2020-01-10 17.0
dtype: float64
Run Code Online (Sandbox Code Playgroud)
min_periods确保计算前两个元素.窗口大小为3时,默认情况下,前两个元素是NaN.
| 归档时间: |
|
| 查看次数: |
2830 次 |
| 最近记录: |