用法:
Series.ewm(com=None, span=None, halflife=None, alpha=None, min_periods=0, adjust=True, ignore_na=False, axis=0, times=None, method='single')
提供 index 加權 (EW) 計算。
必須提供一個參數:
com
、span
、halflife
或alpha
。- com:浮點數,可選
根據質心指定衰減
,對於 。
- span:浮點數,可選
根據跨度指定衰減
,對於 。
- halflife:浮點數,str,timedelta,可選
指定衰減 half-life
,對於 。
如果指定
times
,則觀察值衰減到其值一半的時間單位(str 或 timedelta)。僅適用於mean()
,半衰期值不適用於其他函數。- alpha:浮點數,可選
直接指定平滑因子
。
- min_periods:整數,默認 0
具有值所需的窗口中的最小觀察數;否則,結果為
np.nan
。- adjust:布爾值,默認為真
除以期初的衰減調整因子,以說明相對權重的不平衡(將 EWMA 視為移動平均線)。
當
adjust=True
(默認)時,EW 函數使用權重 計算。例如,序列 [ ] 的 EW 移動平均線將是:
當
adjust=False
時,遞歸計算 index 加權函數:
- ignore_na:布爾值,默認為 False
計算權重時忽略缺失值。
ignore_na=False
(默認)時,權重基於絕對位置。例如,在計算 [ , None, ] 的最終加權平均值時使用的 和 的權重是 和 ifadjust=True
和 和 如果adjust=False
。當
ignore_na=True
時,權重基於相對位置。例如,在計算 [ , None, ] 的最終加權平均值時使用的 和 的權重是 和 ifadjust=True
和 和 如果adjust=False
。
- axis:{0, 1},默認 0
如果
0
或'index'
,跨行計算。如果
1
或'columns'
,跨列計算。- times:str,np.ndarray,係列,默認無
-
僅適用於
mean()
。對應於觀察的時間。必須單調遞增和
datetime64[ns]
dtype。如果是一維數組,則與觀察值具有相同形狀的序列。
- method:str {‘single’, ‘table’},默認 ‘single’
-
對單個列或行 (
'single'
) 或整個對象 ('table'
) 執行滾動操作。此參數僅在方法調用中指定
engine='numba'
時實現。僅適用於
mean()
ExponentialMovingWindow
子類
參數:
返回:
注意:
有關更多使用細節和示例,請參閱窗口操作。
例子:
>>> 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 >>> df.ewm(alpha=2 / 3).mean() B 0 0.000000 1 0.750000 2 1.615385 3 1.615385 4 3.670213
調整
>>> df.ewm(com=0.5, adjust=True).mean() B 0 0.000000 1 0.750000 2 1.615385 3 1.615385 4 3.670213 >>> df.ewm(com=0.5, adjust=False).mean() B 0 0.000000 1 0.666667 2 1.555556 3 1.555556 4 3.650794
ignore_na
>>> df.ewm(com=0.5, ignore_na=True).mean() B 0 0.000000 1 0.750000 2 1.615385 3 1.615385 4 3.225000 >>> df.ewm(com=0.5, ignore_na=False).mean() B 0 0.000000 1 0.750000 2 1.615385 3 1.615385 4 3.670213
次
使用相對於
times
的 timedeltahalflife
計算權重的 index 加權平均值。>>> times = ['2020-01-01', '2020-01-03', '2020-01-10', '2020-01-15', '2020-01-17'] >>> df.ewm(halflife='4 days', times=pd.DatetimeIndex(times)).mean() B 0 0.000000 1 0.585786 2 1.523889 3 1.523889 4 3.233686
相關用法
- Python pandas.Series.eq用法及代碼示例
- Python pandas.Series.empty用法及代碼示例
- Python pandas.Series.explode用法及代碼示例
- Python pandas.Series.expanding用法及代碼示例
- Python pandas.Series.equals用法及代碼示例
- Python pandas.Series.iloc用法及代碼示例
- Python pandas.Series.add_prefix用法及代碼示例
- Python pandas.Series.map用法及代碼示例
- Python pandas.Series.max用法及代碼示例
- Python pandas.Series.str.isdecimal用法及代碼示例
- Python pandas.Series.str.get用法及代碼示例
- Python pandas.Series.to_csv用法及代碼示例
- Python pandas.Series.dt.day_name用法及代碼示例
- Python pandas.Series.sample用法及代碼示例
- Python pandas.Series.plot.line用法及代碼示例
- Python pandas.Series.to_pickle用法及代碼示例
- Python pandas.Series.between_time用法及代碼示例
- Python pandas.Series.reindex_like用法及代碼示例
- Python pandas.Series.dt.is_year_end用法及代碼示例
- Python pandas.Series.repeat用法及代碼示例
- Python pandas.Series.str.replace用法及代碼示例
- Python pandas.Series.update用法及代碼示例
- Python pandas.Series.iat用法及代碼示例
- Python pandas.Series.divide用法及代碼示例
- Python pandas.Series.str.endswith用法及代碼示例
注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.Series.ewm。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。