Dati di serie temporali in Panda

Dati di serie temporali in Panda

In questo tutorial imparerai come ricampionare i dati delle serie temporali utilizzando Pandas. Puoi guardare il video completo di questo tutorial in fondo a questo blog .

Cos'è questa idea di ricampionamento? Ciò è correlato ai dati delle serie temporali e ciò che faremo è modificare la frequenza con cui tali dati vengono riportati. Ad esempio, modificando il valore annuale in mensile o settimanale o modificando i dati orari in giornalieri. In breve, stiamo cambiando il livello nella gerarchia.

Questo può essere utilizzato per una serie di motivi, come ottenere tendenze più affidabili , dimensioni del campione e stagionalità . In alcuni rapporti, avrà più senso se usiamo un certo livello della gerarchia piuttosto che un altro.

Inoltre, il ricampionamento può essere utile se si dispone di origini dati diverse ed è necessario eseguire l'unione di dati di serie temporali. Questo aiuterà anche quando si ha a che fare con una discrepanza nella gerarchia .

Dati di serie temporali in Panda

Per scomporre ulteriormente questo aspetto, abbiamo il downsampling e l'upsampling.

Il downsampling consiste nel ridurre la frequenza dei rapporti . Può trattarsi di cose come la conversione da un secondo a un'ora per avere meno valori o il downsampling da un mese all'altro.

D'altra parte, l'upsampling consiste nell'aumentare la frequenza dei rapporti dal livello mensile fino al giorno . Avremo altri esempi di questo più avanti.

Dati di serie temporali in Panda

Sommario

Come ricampionare i dati delle serie temporali utilizzando i panda

Come lo faremo in Pandas?

Prima di tutto, modificheremo l' indice alla nostra colonna di dati delle serie temporali . Quindi, possiamo eseguire l'upsampling utilizzando l'interpolazione, che riempirà i valori, e possiamo eseguire il downsampling per eseguire il rollup aggregando i valori.

Dati di serie temporali in Panda

Passiamo a Jupyter Notebook Python e diamo un'occhiata a Pandas.

Per iniziare, utilizzeremo Pandas digitando import pandas as pd , seguito da import seaborn as sns per visualizzarlo e import matplotlib.pyplot as plt per personalizzare la visualizzazione Seaborn .

La prossima cosa da fare è ottenere i dati da vega_datasets import data . È un bel posto per ottenere fonti di esempio. Inoltre, otterremo sp = data.sp500 ( ) e sp.head ( ) library .

Dati di serie temporali in Panda

Ecco i nostri dati finora. Abbiamo i rendimenti giornalieri e il prezzo per ogni giorno.

Dati di serie temporali in Panda

Per impostare la colonna index to date, digitare sp.set_index(['date'], inplace=True) quindi richiamare sp.head .

Dati di serie temporali in Panda

Utilizzo dell'upsampling per ottenere valori

Quindi, per avere più valori, usiamo l'upsampling. Poiché abbiamo i dati per ogni giorno, possiamo scendere all'ora usando la funzione più semplice che è sp [['price']]. resample ('H').ffill ( ) , quindi eseguilo. H sta per ora, M per mese, D per giorno e così via. Puoi saperne di più su questo nella documentazione di Pandas .

Come possiamo vedere, il 1 gennaio a mezzanotte il prezzo è 1394,46, come le ore successive dall'1:00 alle 4:00. Un altro esempio è il 2 gennaio, dove il prezzo di chiusura è 1366,42.

Dati di serie temporali in Panda

Esistono altri modi per eseguire questa operazione anche se il valore non è disponibile a livello di ora. Inoltre, ci sono modi più sofisticati rispetto al semplice riempimento in avanti . Per il nostro esempio, quello che abbiamo fatto è il modo di base per eseguire l'interpolazione dell'upsampling.

Successivamente, passiamo al downsampling digitando avg_month = sp [['price]].resample ('M').mean ( ) , quindi avg_month.head ( ) ed eseguilo per verificare.

Come illustrato, possiamo vedere l'ultimo giorno di ogni mese e il prezzo medio. Possiamo diminuire i campioni per avere meno valori, o ciò che chiamiamo ridimensionamento.

Dati di serie temporali in Panda

Per visualizzarlo, digitiamo re-plot le dimensioni disegnate. Quindi, seguito da sns.lineplot . Il grafico a linee funziona meglio con un asse X più lungo, mentre il valore Y è il prezzo medio mensile.

Per vedere il prezzo medio per il mese tracciato, eseguiamo questo.

Dati di serie temporali in Panda

Ancora una volta, ci sono molti modi diversi in cui possiamo farlo. Ad esempio, se vogliamo conoscere il prezzo più basso per trimestre, tutto ciò che dobbiamo fare è digitare quarter_low , quindi quarter_low.head per eseguirlo.

Quindi, ora possiamo vedere il valore più basso trimestrale trovato in ogni trimestre. Ecco come si esegue un ricampionamento.

Dati di serie temporali in Panda


Gestione dei dati mancanti in Python utilizzando il metodo di interpolazione
MultiIndex in Panda per set di dati di dati multilivello o gerarchici
in Panda con ProfileReport | Python in LuckyTemplates

Conclusione

Per finire, Pandas è davvero progettato per il ricampionamento e i dati delle serie temporali . Se stai lavorando su dati di serie temporali e hai granularità diverse, il ricampionamento può essere molto utile.

Inoltre, assicurati di leggere la documentazione di Pandas sul metodo resample per imparare molti modi diversi per farlo. Abbiamo esaminato quelli di base, ma puoi fare cose come bisettimanale, l'ultimo giorno lavorativo del mese e più opzioni per il ricampionamento.

Ti auguro il meglio,

Giorgio Monte


Cosè il sé in Python: esempi del mondo reale

Cosè il sé in Python: esempi del mondo reale

Cos'è il sé in Python: esempi del mondo reale

Come salvare e caricare un file RDS in R

Come salvare e caricare un file RDS in R

Imparerai come salvare e caricare oggetti da un file .rds in R. Questo blog tratterà anche come importare oggetti da R a LuckyTemplates.

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

Rivisitazione dei primi N giorni lavorativi: una soluzione per il linguaggio di codifica DAX

In questa esercitazione sul linguaggio di codifica DAX, scopri come usare la funzione GENERATE e come modificare dinamicamente il titolo di una misura.

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Mostra approfondimenti utilizzando la tecnica di visualizzazione dinamica multi-thread in LuckyTemplates

Questo tutorial illustrerà come utilizzare la tecnica di visualizzazione dinamica multi-thread per creare approfondimenti dalle visualizzazioni di dati dinamici nei report.

Introduzione al filtraggio del contesto in LuckyTemplates

Introduzione al filtraggio del contesto in LuckyTemplates

In questo articolo, esaminerò il contesto del filtro. Il contesto del filtro è uno degli argomenti principali che qualsiasi utente di LuckyTemplates dovrebbe inizialmente conoscere.

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

I migliori suggerimenti per lutilizzo delle app nel servizio online LuckyTemplates

Voglio mostrare come il servizio online di LuckyTemplates Apps può aiutare nella gestione di diversi report e approfondimenti generati da varie fonti.

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Analizza le variazioni del margine di profitto nel tempo: analisi con LuckyTemplates e DAX

Scopri come elaborare le modifiche al margine di profitto utilizzando tecniche come la ramificazione delle misure e la combinazione di formule DAX in LuckyTemplates.

Idee di materializzazione per cache di dati in DAX Studio

Idee di materializzazione per cache di dati in DAX Studio

Questo tutorial discuterà delle idee di materializzazione delle cache di dati e di come influiscono sulle prestazioni dei DAX nel fornire risultati.

Reporting aziendale tramite LuckyTemplates

Reporting aziendale tramite LuckyTemplates

Se finora utilizzi ancora Excel, questo è il momento migliore per iniziare a utilizzare LuckyTemplates per le tue esigenze di reportistica aziendale.

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cosè il gateway LuckyTemplates? Tutto quello che devi sapere

Che cos'è il gateway LuckyTemplates? Tutto quello che devi sapere