熊猫在尾随的n个元素上滚动cumsum

Car*_*osE 3 pandas cumsum

使用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)

ayh*_*han 6

你需要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.