Pandas per le serie temporali

Pandas per le serie temporali' -> 'Pandas per le serie temporali

Elaborazione dei dati in Python

Questo articolo spiega i metodi di pandas per le serie temporali. Affrontiamo le serie temporali come dei professionisti.

Foto di Aron Visuals su Unsplash

Da quando sono entrato nel mondo del lavoro come data scientist, la maggior parte dei dati con cui ho a che fare sono serie temporali. Bene, ci sono molte definizioni per serie temporali, in generale si tratta di un insieme di punti dati raccolti nel corso del tempo. O, in modo più pythonico, si riferisce a un dataset con un indice di data e ora e almeno una colonna con valori numerici.

Potrebbe essere il prezzo di un’azione negli ultimi mesi, le vendite di un ipermercato nelle ultime settimane, o persino i record dei livelli di zucchero nel sangue raccolti durante i mesi per un paziente.

In questo articolo, mostrerò come applicare pandas a un dataset di serie temporali, con un esempio di record generati dei livelli di zucchero nel sangue.

A tal proposito, questo articolo sarà strutturato come segue:

  1. Manipolazione del formato DateTime – cambiare la serie di date e orari nel formato desiderato
  2. Conversione di DateTime in un periodo specifico – convertire ogni punto dati in periodi di tempo specifici
  3. Filtraggio della serie DateTime in base a una condizione – filtrare i punti dati in base a un periodo di tempo selezionato
  4. Spostamento temporale – spostamento dei punti dati verso il basso per un numero specifico di periodi
  5. Riassunto delle serie temporali – raggruppamento dei punti dati in base al periodo di tempo specificato
  6. Grafico a linee

Cominciamo!

Come al solito, il primo passo in qualsiasi analisi con Python è importare le librerie necessarie.

Importare le librerie

import pandas as pdimport randomimport numpy as npfrom datetime import datetime 

Creare i dati

Quindi, generiamo un dataset di record dei livelli di zucchero nel sangue per questa demo.

def create_demo_data():    random.seed(365)    np.random.seed(365)    number_of_data_rows = 2160        # generare una lista di date    dates = pd.bdate_range(datetime(2020, 7, 1), freq='4H', periods=number_of_data_rows).tolist()        # creare un dizionario con...