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'引擎,该引擎可以接受nopython、nogil和parallel字典键。值必须为True或False。'numba'引擎的默认engine_kwargs为{'nopython': True, 'nogil': False, 'parallel': False},并将应用于func和apply滚动聚合。
- 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