Spec-Zone.ru › pandas 1

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')[source]

Предоставление показателей экспоненциального взвешивания (EW).

Должно быть предоставлено ровно одно из com, span, halflife, или alpha, если times не предоставлено. Если times предоставлено, halflife и одно из com, span или alpha могут быть предоставлены.

Parameters
com:float, optional

Указывает затухание в терминах центра масс

\(\alpha = 1 / (1 + com)\), для \(com \geq 0\).

span:float, optional

Указывает затухание в терминах диапазона

\(\alpha = 2 / (span + 1)\), для \(span \geq 1\).

halflife:float, str, timedelta, optional

Указывает затухание в терминах периода полураспада

\(\alpha = 1 - \exp\left(-\ln(2) / halflife\right)\), для \(halflife > 0\).

Если times указано, то временной интервал, за который наблюдение распадается до половины своего значения. Применимо только к mean(), и значение halflife не будет применяться к другим функциям.

New in version 1.1.0.

alpha:float, optional

Указывает коэффициент сглаживания \(\alpha\) непосредственно

\(0 < \alpha \leq 1\).

min_periods:int, default 0

Минимальное количество наблюдений в окне, необходимое для получения значения; в противном случае результатом является np.nan.

adjust:bool, default True

Деление на коэффициент затухания в начальных периодах для учета дисбаланса в относительных весах (рассмотрение EWMA как скользящей средней).

ignore_na:bool, default False

Игнорировать пропущенные значения при расчете весов.

axis:{0, 1}, default 0

Если 0 или 'index', расчет выполняется по строкам.

Если 1 или 'columns', расчет выполняется по столбцам.

Для Series этот параметр не используется и по умолчанию равен 0.

times:str, np.ndarray, Series, default None
method:str {‘single’, ‘table’}, default ‘single’
Returns
ExponentialMovingWindow subclass

See also

rolling

Предоставляет вычисления скользящего окна.

expanding

Предоставляет расширяющие преобразования.

Notes

См. Операции с окнами для получения дополнительных сведений и примеров.

Examples

>>> 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

adjust

>>> 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

Экспоненциально взвешенное среднее со взвешиванием, рассчитанным с временным интервалом halflife относительно times.

>>> 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

© 2008–2022, AQR Capital Management, LLC, Lambda Foundry, Inc. and PyData Development Team
Licensed under the 3-clause BSD License.
https://pandas.pydata.org/pandas-docs/version/1.5.0/reference/api/pandas.DataFrame.ewm.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API