pandas.core.window.expanding.Expanding.apply#

Expanding.apply(func, raw=False, engine=None, engine_kwargs=None, args=None, kwargs=None)[源代码]#

计算扩展自定义聚合函数。

Parameters:
funcfunction

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

rawbool,默认 False
  • False:将每一行或每一列作为 Series 传递给函数。

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

enginestr,默认 None
  • 'cython' : 通过 cython 的 C 扩展运行滚动 apply。

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

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

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

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

args元组,默认为 None

将传递给 func 的位置参数。

kwargsdict, 默认为 None

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

Returns:
Series 或 DataFrame

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

参见

pandas.Series.expanding

调用 Series 数据的 expanding。

pandas.DataFrame.expanding

调用 DataFrames 的 expanding。

pandas.Series.apply

聚合 Series 的 apply。

pandas.DataFrame.apply

聚合 DataFrame 的 apply。

Examples

>>> ser = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
>>> ser.expanding().apply(lambda s: s.max() - 2 * s.min())
a   -1.0
b    0.0
c    1.0
d    2.0
dtype: float64