dask_expr._rolling.Rolling.apply

dask_expr._rolling.Rolling.apply

Rolling.apply(func, *args, **kwargs)[源代码]

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

此文档字符串是从 pandas.core.window.rolling.Rolling.apply 复制的。

Dask 版本可能存在一些不一致性。

参数
函数函数

如果 raw=True,则必须从 ndarray 输入生成一个单一值;如果 raw=False,则必须从 Series 生成一个单一值。还可以接受指定 engine='numba' 的 Numba JIT 函数。

原始bool, 默认 False (Dask 中不支持)
  • False : 将每一行或每一列作为一个 Series 传递给函数。

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

引擎str, 默认 None (Dask 中不支持)
  • 'cython' : 通过来自 cython 的 C 扩展运行滚动应用。

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

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

engine_kwargsdict, 默认 None (Dask 中不支持)
  • 对于 'cython' 引擎,没有接受的 engine_kwargs

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

参数tuple, 默认 None (Dask 中不支持)

传递给 func 的位置参数。

kwargsdict, 默认 None (Dask 中不支持)

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

返回
Series 或 DataFrame

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

参见

pandas.Series.rolling

调用带有 Series 数据的 rolling。

pandas.DataFrame.rolling

使用 DataFrames 调用 rolling。

pandas.Series.apply

聚合应用到 Series。

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