当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。