DataFrame.ewm(self, com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, axis=0)
提供指数加权函数。
0.18.0版中的新功能。
参数: | com : 根据质心指定衰减, span : 根据范围指定衰减, halflife : 根据半衰期指定衰减, alpha : 直接指定平滑系数α, 0.18.0版中的新功能。 min_periods : 窗口中具有值的最小观察数(否则结果为NA)。 adjust : 除以开始阶段的衰减调整因子, 以解释相对权重的不平衡(将EWMA视为移动平均线)。 ignore_na : 计算权重时忽略缺失值;指定True可重现0.15.0之前的行为。 axis : {0或'index',1或'columns'},默认 要使用的轴。值0标识行,值1标识列。 |
返回值: |
为特定操作子分类的Window。 |
Notes
必须提供质心(mass),跨度(span),半衰期(half-life)和alpha值之一。参数的允许值和关系在上面的参数描述中指定;有关详细说明,请参见本节末尾的链接。
当adjust为True(默认)时,将使用权重(1-alpha)**(n-1),(1-alpha)**(n-2),…,1-alpha
,1来计算加权平均值。
当adjust为False时,将按以下方式递归计算加权平均值:weighted_average [0] = arg [0]; weighted_average [i] =(1-alpha)* weighted_average [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)。
有关更多详细信息,请访问http://pandas.pydata.org/pandas-docs/stable/user_guide/computation.html#exponentially-weighted-windows
例子
>>> df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]})
>>> df
B
0 0.0
1 1.0
2 2.0
3 NaN
4 4.0
>>> df.ewm(com=0.5).mean()
B
0 0.000000
1 0.750000
2 1.615385
3 1.615385
4 3.670213