Как рассчитать экспоненциальную скользящую среднюю в Pandas

Как рассчитать экспоненциальную скользящую среднюю в Pandas

В анализе временных рядов скользящая средняя — это просто среднее значение определенного количества предыдущих периодов.

Экспоненциальное скользящее среднее — это тип скользящего среднего, который придает больший вес недавним наблюдениям, что означает, что он может быстрее фиксировать последние тенденции.

В этом руководстве объясняется, как рассчитать экспоненциальное скользящее среднее для столбца значений в кадре данных pandas.

Пример: экспоненциальная скользящая средняя в Pandas

Предположим, у нас есть следующие Pandas DataFrame:

import pandas as pd

#create DataFrame
df = pd.DataFrame({'period': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],
 'sales': [25, 20, 14, 16, 27, 20, 12, 15, 14, 19]})

#view DataFrame 
df

 period sales
0 1 25
1 2 20
2 3 14
3 4 16
4 5 27
5 6 20
6 7 12
7 8 15
8 9 14
9 10 19

Мы можем использовать функцию pandas.DataFrame.ewm() для вычисления экспоненциально взвешенной скользящей средней за определенное количество предыдущих периодов.

Например, вот как рассчитать экспоненциально взвешенную скользящую среднюю, используя четыре предыдущих периода:

#create new column to hold 4-day exponentially weighted moving average
df['4dayEWM'] = df['sales']. ewm (span= 4 , adjust= False ).mean()

#view DataFrame 
df

 period sales 4dayEWM
0 1 25 25.000000
1 2 20 23.000000
2 3 14 19.400000
3 4 16 18.040000
4 5 27 21.624000
5 6 20 20.974400
6 7 12 17.384640
7 8 15 16.430784
8 9 14 15.458470
9 10 19 16.875082

Мы также можем использовать библиотеку matplotlib для визуализации продаж по сравнению с 4-дневной экспоненциально взвешенной скользящей средней:

import matplotlib.pyplot as plt

#plot sales and 4-day exponentially weighted moving average 
plt.plot(df['sales'], label='Sales')
plt.plot(df['4dayEWM'], label='4-day EWM')

#add legend to plot
plt.legend(loc=2)
Экспоненциально взвешенное скользящее среднее в pandas

Дополнительные ресурсы

Как рассчитать скользящие средние в Python
Как рассчитать среднее значение столбцов в Pandas
Как рассчитать автокорреляцию в Python

Замечательно! Вы успешно подписались.
Добро пожаловать обратно! Вы успешно вошли
Вы успешно подписались на кодкамп.
Срок действия вашей ссылки истек.
Ура! Проверьте свою электронную почту на наличие волшебной ссылки для входа.
Успех! Ваша платежная информация обновлена.
Ваша платежная информация не была обновлена.