pandas.core.window.rolling.Rolling.sum#

Rolling.sum(numeric_only=False, engine=None, engine_kwargs=None)[源代码]#

计算滚动总和。

Parameters:
numeric_onlybool,默认 False

仅包括浮点数、整数、布尔列。

在 1.5.0 版本加入.

enginestr,默认 None
  • 'cython' : 通过 cython 的 C 扩展运行操作。

  • 'numba' : 通过 numba 的 JIT 编译代码运行操作。

  • None : 默认为 'cython' 或全局设置的 compute.use_numba

    在 1.3.0 版本加入.

engine_kwargsdict, 默认为 None
  • 对于 'cython' 引擎,没有可接受的 engine_kwargs

  • 对于 'numba' 引擎,该引擎可以接受 nopythonnogilparallel 字典键。值必须为 TrueFalse'numba' 引擎的默认 engine_kwargs{'nopython': True, 'nogil': False, 'parallel': False}

    在 1.3.0 版本加入.

Returns:
Series 或 DataFrame

返回类型与原始对象相同,并具有 np.float64 数据类型。

参见

pandas.Series.rolling

使用 Series 数据调用滚动。

pandas.DataFrame.rolling

使用 DataFrame 调用滚动。

pandas.Series.sum

聚合 Series 的总和。

pandas.DataFrame.sum

聚合 DataFrame 的总和。

Notes

有关 Numba 引擎的扩展文档和性能考虑,请参阅 Numba 引擎Numba (JIT 编译)

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

对于 DataFrame,每个总和是按列计算的。

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