pandas.core.window.rolling.Rolling.apply #
- 滚动。apply ( func , raw = False , engine = None , engine_kwargs = None , args = None , kwargs = None ) [来源] #
计算滚动自定义聚合函数。
- 参数:
- 函数函数
必须从 ndarray 输入生成单个值 if
raw=True
或从 Series 生成单个值 ifraw=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
,nogil
和parallel
字典键。这些值必须是True
或False
。引擎engine_kwargs
的默认设置将应用于和滚动聚合。'numba'
{'nopython': True, 'nogil': False, 'parallel': False}
func
apply
- 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