Come ricampionare i dati delle serie temporali in python (con esempi)


Ricampionare i dati delle serie temporali significa riassumere o aggregare i dati in un nuovo periodo.

Possiamo usare la seguente sintassi di base per ricampionare i dati delle serie temporali in 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 () 

Tieni presente che possiamo ricampionare i dati delle serie temporali in periodi di tempo diversi, tra cui:

  • S : Secondi
  • min : minuti
  • H : Ore
  • J :Giorno
  • W : Settimana
  • M : Mese
  • D : Un quarto
  • R : Anno

L’esempio seguente mostra come ricampionare nella pratica i dati delle serie temporali.

Esempio: ricampionare i dati delle serie temporali in Python

Supponiamo di avere il seguente DataFrame panda che mostra le vendite totali effettuate ogni ora da un’azienda in un periodo di un anno:

 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 creiamo un grafico a linee per visualizzare i dati di vendita, sarebbe simile a questo:

 import matplotlib. pyplot as plt

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

Questo grafico è di difficile interpretazione, quindi possiamo riassumere i dati di vendita per settimana:

 #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

Questo nuovo DataFrame mostra la somma delle vendite settimanali.

Possiamo quindi creare un grafico della serie temporale utilizzando questi dati settimanali:

 import matplotlib. pyplot as plt

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

Questo grafico è molto più facile da leggere perché rappresentiamo solo i dati di vendita per 51 settimane individuali, rispetto ai dati di vendita per 8.545 ore individuali nel primo esempio.

Nota : in questo esempio, abbiamo riepilogato i dati di vendita per settimana, ma potremmo anche riassumerli per mese o trimestre se desideriamo tracciare ancora meno punti dati.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni in Python:

Come tracciare una serie temporale in Matplotlib
Come tracciare una serie temporale in Seaborn
Come calcolare MAPE dalle serie temporali in Python

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *