當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python pandas.DataFrame.ewm用法及代碼示例


用法:

DataFrame.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) 計算。

必須提供一個參數:comspanhalflifealpha

參數

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, ] 的最終加權平均值時使用的 的權重是 if adjust=True 如果 adjust=False

  • ignore_na=True 時,權重基於相對位置。例如,在計算 [ , None, ] 的最終加權平均值時使用的 的權重是 if adjust=True 如果 adjust=False

axis{0, 1},默認 0

如果 0'index' ,跨行計算。

如果 1'columns' ,跨列計算。

timesstr,np.ndarray,係列,默認無

僅適用於 mean()

對應於觀察的時間。必須單調遞增和datetime64[ns] dtype。

如果是一維數組,則與觀察值具有相同形狀的序列。

methodstr {‘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 的 timedelta halflife 計算權重的 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

相關用法


注:本文由純淨天空篩選整理自pandas.pydata.org大神的英文原創作品 pandas.DataFrame.ewm。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。