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