maxframe.dataframe.Series.ewm#
- Series.ewm(com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, axis=0)#
提供指数加权函数。
- 参数:
com (float, optional) -- 以质心为中心指定衰减,\(\alpha = 1 / (1 + com),\text{ 其中 } com \geq 0\)。
span (float, optional) -- 以跨度指定衰减,\(\alpha = 2 / (span + 1),\text{ 其中 } span \geq 1\)。
halflife (float, optional) -- 以半衰期指定衰减,\(\alpha = 1 - exp(log(0.5) / halflife),\text{其中} halflife > 0\)。
alpha (float, optional) -- 直接指定平滑因子 \(\alpha\),其中 \(0 < \alpha \leq 1\)。
min_periods (int, default 0) -- 窗口中需要有值的最小观测数(否则结果为 NA)。
adjust (bool, default True) -- 在初期通过递减调整因子进行除法,以弥补相对权重不平衡的问题(将 EWMA 视为移动平均)。
ignore_na (bool, default False) -- 计算权重时忽略缺失值;指定 True 以重现 0.15.0 之前的行为。
axis ({0 or 'index', 1 or 'columns'}, default 0) -- 要使用的轴。值 0 表示行,1 表示列。
- 返回:
为特定操作子类化的 Window 对象。
- 返回类型:
备注
必须恰好提供质心、跨度、半衰期和 alpha 中的一个。
允许的值及参数之间的关系已在上述参数描述中说明;有关详细解释,请参阅本节末尾的链接。
当 adjust 为 True(默认)时,使用权重 (1-alpha)**(n-1), (1-alpha)**(n-2), ..., 1-alpha, 1 计算加权平均值。
当 adjust 为 False 时,加权平均值按如下方式递归计算:
加权平均值[0] = arg[0]; 加权平均值[i] = (1-alpha)*加权平均值[i-1] + alpha*arg[i].
当 ignore_na 为 False(默认)时,权重基于绝对位置。例如,在计算 [x, None, y] 的最终加权平均值时,x 和 y 的权重分别为 (1-alpha)**2 和 1(如果 adjust 为 True),以及 (1-alpha)**2 和 alpha(如果 adjust 为 False)。
当 ignore_na 为 True(重现 0.15.0 之前的行为)时,权重基于相对位置。例如,在计算 [x, None, y] 的最终加权平均值时,x 和 y 的权重分别为 1-alpha 和 1(如果 adjust 为 True),以及 1-alpha 和 alpha(如果 adjust 为 False)。
示例
>>> import numpy as np >>> import maxframe.dataframe as md >>> df = md.DataFrame({'B': [0, 1, 2, np.nan, 4]}) >>> df.execute() B 0 0.0 1 1.0 2 2.0 3 NaN 4 4.0 >>> df.ewm(com=0.5).mean().execute() B 0 0.000000 1 0.750000 2 1.615385 3 1.615385 4 3.670213