Skip to main content
`Ctrl`+`K`

# pandas.api.typing.Rolling.sum

Rolling.sum(numeric_only=False, engine=None, engine_kwargs=None)

  Calculate the rolling sum.

  This is equivalent to applying `numpy.sum` over each rolling window. Missing values (NaN) are excluded from the calculation.

  Parameters:
    numeric_only bool, default False

      Include only float, int, boolean columns.

    engine str, default None

      - `'cython'` : Runs the operation through C-extensions from cython.

      - `'numba'` : Runs the operation through JIT compiled code from numba.

      - `None` : Defaults to `'cython'` or globally setting `compute.use_numba`

    engine_kwargs dict, default None

      - For `'cython'` engine, there are no accepted `engine_kwargs`

      - For `'numba'` engine, the engine can accept `nogil` and `parallel` dictionary keys. The values must either be `True` or `False`. The default `engine_kwargs` for the `'numba'` engine is `{'nogil': False, 'parallel': False}`.

  Returns:
    Series or DataFrame

      Return type is the same as the original object with `np.float64` dtype.

  See also

  `Series.rolling`

    Calling rolling with Series data.

  `DataFrame.rolling`

    Calling rolling with DataFrames.

  `Series.sum`

    Aggregating sum for Series.

  `DataFrame.sum`

    Aggregating sum for DataFrame.

  Notes

  See Numba engine and Numba (JIT compilation) for extended documentation and performance considerations for the Numba engine.

  Examples

      >>> s = pd.Series([1, 2, 3, 4, 5])
      >>> s
      0    1
      1    2
      2    3
      3    4
      4    5
      dtype: int64

      >>> s.rolling(3).sum()
      0     NaN
      1     NaN
      2     6.0
      3     9.0
      4    12.0
      dtype: float64

      >>> s.rolling(3, center=True).sum()
      0     NaN
      1     6.0
      2     9.0
      3    12.0
      4     NaN
      dtype: float64

  For DataFrame, each sum is computed column-wise.

      >>> df = pd.DataFrame({"A": s, "B": s**2})
      >>> df
      A   B
      0  1   1
      1  2   4
      2  3   9
      3  4  16
      4  5  25

      >>> df.rolling(3).sum()
           A     B
      0   NaN   NaN
      1   NaN   NaN
      2   6.0  14.0
      3   9.0  29.0
      4  12.0  50.0