DataFrame.ewm(self,com=None,halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, axis=0)
提供指數加權平均。
返回值 | DataFrame |
---|---|
參數 | com:float,可選 根據質心指定衰減,α=1/(1+com), for com≥0 span:float,可選 根據范圍指定衰減,α=2/(span+1), for span≥1 halflife:float,可選 根據半衰期指定衰減,α=1−exp(log(0.5)/halflife), for halflife>0 alpha:float,可選 指定平滑系數α,0<α≤1 min_periods:int,默認為0 窗口中具有值的最小觀察數(否則結果為NA) adjust:bool,默認為True 除以開始階段的衰減調整因子,以解釋相對權重的不平衡(將EWMA視為移動平均線) ignore_na:bool,默認為False 計算權重時忽略缺失值;指定True重現0.15.0版本之前的行為。 axis:{0或者'index',1或‘columns’},默認為0,標識行,值1標識列。 |
必須提供質心(com
)、跨度(span
)、半衰期(half-life
)和alpha
值之一。
當adjust = True
(默認)時,將使用權重(1-α)^(n-1), (1-α)^(n-2),...1-α, 1來計算加權平均值。
當adjust = False
時,按照下式遞歸計算加權平均值:
weightd_average[0] = arg[0];
weighted_avreaged[i] = (1-α) * weighted_average[i-1] + α * arg[i]
當ignore_na = False
時,權重基於絕對值位置。
當ignore_na = True
時,權重基於相對值位置。
例如,用於計算 [x, None, y] 的最終加權平均值的 x 和 y 的權重分別為
(1-α)^2 和 1 (如果 adjust = True
) ;
(1-α) 和 α (如果adjust = False
)
例子
df = pd.DataFrame({'B': [0, 1, 2, np.nan, 4]})
df
df.ewm(com = 0.5).mean()