Существует ли функция Pandas для создания 7-дневной скользящей средней из временного ряда?

#python #pandas #matplotlib

#python #pandas #matplotlib

Вопрос:

Я ищу документацию или учебное пособие по созданию 7-дневной скользящей средней из временных рядов из Pandas на Python и визуализации ее в Matplotlib.

Вот мой код:

 import pandas as pd
import matplotlib.pyplot as plt 
from datetime import datetime, timedelta
plt.style.use('seaborn-poster')

url = 'https://raw.githubusercontent.com/mariorz/covid19-mx-time-series/master/data/covid19_confirmed_mx.csv'
df = pd.read_csv(url, index_col=0)

df = df.loc['Colima','18-03-2020':'12-08-2020']
df = pd.DataFrame(df)
df.index = pd.to_datetime(df.index, format='%d-%m-%Y')



fig, ax = plt.subplots()
ax.plot(df)
ax.set_ylabel('Casos positivos', fontsize=10)
ax.set_title('Casos positivos acumulados de COVID-19 en Colima (12 de agosto, 2020)', fontsize=10)
plt.xticks(rotation=30)
plt.savefig('positivos_registro.png', dpi=500)
  

Вывод:
введите описание изображения здесь

Ответ №1:

Вы можете использовать .rolling() для вычисления скользящих средних, например:

 df.rolling(window=7).mean() 
  

Rolling() также есть аргумент center=True для вычисления окна по центру посередине. Затем он выглядит на 3 дня вперед и на 3 дня назад, когда ваше окно равно 7.

Значение по умолчанию равно center=False . Он просто возвращает значение текущего дня 6 значений дня, когда окно равно 7.