Como reamostrar dados de série temporal em python (com exemplos)


Reamostrar dados de séries temporais significa resumir ou agregar os dados durante um novo período.

Podemos usar a seguinte sintaxe básica para reamostrar dados de série temporal em Python:

 #find sum of values in column1 by month
weekly_df[' column1 '] = df[' column1 ']. resample (' M '). sum ()

#find mean of values in column1 by week
weekly_df[' column1 '] = df[' column1 ']. resample (' W '). mean () 

Observe que podemos reamostrar dados de séries temporais para diferentes períodos de tempo, incluindo:

  • S : Segundos
  • min : Minutos
  • H : Horas
  • J : Dia
  • W : Semana
  • M : Mês
  • P : Trimestre
  • R : Ano

O exemplo a seguir mostra como reamostrar dados de série temporal na prática.

Exemplo: Reamostrar dados de série temporal em Python

Suponha que temos o seguinte DataFrame do pandas que mostra o total de vendas realizadas a cada hora por uma empresa durante um período de um ano:

 import pandas as pd
import numpy as np

#make this example reproducible
n.p. random . seeds (0)

#create DataFrame with hourly index
df = pd. DataFrame (index= pd.date_range (' 2020-01-06 ', ' 2020-12-27 ', freq=' h '))

#add column to show sales by hour
df[' sales '] = np. random . randint (low=0, high=20, size= len (df. index ))

#view first five rows of DataFrame
df. head ()

	             dirty
2020-01-06 00:00:00 12
2020-01-06 01:00:00 15
2020-01-06 02:00:00 0
2020-01-06 03:00:00 3
2020-01-06 04:00:00 3

Se criarmos um gráfico de linhas para visualizar os dados de vendas, ficaria assim:

 import matplotlib. pyplot as plt

#plot time series data
plt. plot (df. index , df. sales , linewidth= 3 ) 

Este gráfico é difícil de interpretar, por isso podemos resumir os dados de vendas por semana:

 #create new DataFrame
weekly_df = pd. DataFrame ()

#create 'sales' column that summarizes total sales by week
weekly_df[' sales '] = df[' sales ']. resample (' W '). sum ()

#view first five rows of DataFrame
weekly_df. head ()

                dirty
2020-01-12 1519
2020-01-19 1589
2020-01-26 1540
2020-02-02 1562
2020-02-09 1614

Este novo DataFrame mostra a soma das vendas por semana.

Podemos então criar um gráfico de série temporal usando estes dados semanais:

 import matplotlib. pyplot as plt

#plot weekly sales data
plt. plot ( weekly_df.index , weekly_df.sales , linewidth= 3 ) 

Este gráfico é muito mais fácil de ler porque representamos apenas dados de vendas de 51 semanas individuais, em oposição aos dados de vendas de 8.545 horas individuais no primeiro exemplo.

Nota : Neste exemplo, resumimos os dados de vendas por semana, mas também poderíamos resumi-los por mês ou trimestre se quisermos representar ainda menos pontos de dados.

Recursos adicionais

Os tutoriais a seguir explicam como realizar outras operações comuns em Python:

Como traçar uma série temporal no Matplotlib
Como traçar uma série temporal em Seaborn
Como calcular MAPE a partir de séries temporais em Python

Add a Comment

O seu endereço de email não será publicado. Campos obrigatórios marcados com *