pandas.core.window.rolling.Rolling.apply #

滚动。apply ( func , raw = False , engine = None , engine_kwargs = None , args = None , kwargs = None ) [来源] #

计算滚动自定义聚合函数。

参数
函数函数

必须从 ndarray 输入生成单个值 ifraw=True 或从 Series 生成单个值 if raw=False。还可以接受指定的 Numba JIT 函数engine='numba'

原始布尔值,默认 False
  • False:将每行或列作为一个 Series 传递给函数。

  • True:传递的函数将接收 ndarray 对象。如果您只是应用 NumPy 归约函数,这将获得更好的性能。

引擎str,默认无
  • 'cython':通过 cython 的 C 扩展运行滚动应用。

  • 'numba':通过 numba 的 JIT 编译代码运行滚动应用。仅当raw设置为时可用True

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

engine_kwargs字典,默认 None
  • 对于'cython'发动机,没有可接受的engine_kwargs

  • 对于'numba'引擎,引擎可以接受nopython,nogilparallel字典键。这些值必须是TrueFalse。引擎 engine_kwargs的默认设置将应用于和滚动聚合。'numba'{'nopython': True, 'nogil': False, 'parallel': False}funcapply

args元组,默认无

要传递给 func 的位置参数。

kwargs字典,默认无

要传递给 func 的关键字参数。

返回
系列或数据框

返回类型与具有 dtype 的原始对象相同np.float64

也可以看看

pandas.Series.rolling

使用系列数据进行滚动调用。

pandas.DataFrame.rolling

使用 DataFrame 调用滚动。

pandas.Series.apply

聚合申请系列。

pandas.DataFrame.apply

聚合适用于DataFrame。

例子

>>> ser = pd.Series([1, 6, 5, 4])
>>> ser.rolling(2).apply(lambda s: s.sum() - s.min())
0    NaN
1    6.0
2    6.0
3    5.0
dtype: float64