Serie temporali di Pandas

Serie temporali di Pandas

Molte serie temporali hanno una frequenza definita, il che significa che i loro punti dati sono divisi in intervalli fissi come ogni minuto, ogni giorno o ogni settimana. Intervalli incoerenti possono anche essere presenti nelle serie temporali. Una data rappresentata come il tempo può far parte di una serie di dati. Gli esempi di calendario includono una data come il 07 agosto 2022, alle 12:00. Una serie temporale in Python è una serie/raccolta di punti dati in cui ognuno ha un timestamp associato ad esso. Nel mercato azionario, il prezzo del titolo in momenti diversi durante il giorno è un esempio realistico. Anche se le serie temporali sono offerte anche da Sci-Kit-Learn, i panda forniscono una raccolta di più funzionalità. Possiamo aggiungere l'ora e la data per ciascun record in questo modulo Pandas e ottenere i record di dati di dati. Utilizzando il modulo delle serie temporali Pandas, possiamo scoprire i dati per una gamma specifica di date e tempi. Per spiegare l'analisi delle serie temporali nei panda, parliamo di diversi obiettivi primari.

Analisi delle serie temporali Obiettivi principali

  • Creazione della serie di date
  • Lavorare con il timestamp dei dati
  • Valori/dati di stringa alla conversione del timestamp
  • taglio dei dati utilizzando un timestamp per periodi diversi che ricampionano le serie temporali
  • Determina gli aggregati o le statistiche di riepilogo
  • Gestione dei dati con valori mancanti

Perché Panda per l'analisi delle serie temporali?

Sebbene la libreria Pandas abbia molte funzionalità utili, Python offre moduli come DateTime che eseguono operazioni su dati come date e orari. Questi moduli vengono utilizzati più frequentemente per l'elaborazione dei dati delle serie temporali. Inoltre, per l'analisi delle serie temporali, i panda mantengono la relazione tra le biblioteche. Quando i dati sono timestamp, le funzionalità delle serie temporali di Pandas sono piuttosto utili. Python's DateTime è equivalente a Timestamp in Panda. Viene utilizzato per le voci di DateTimeIndex e altre strutture di dati Timeseries Pandas. La struttura della serie, che è indicizzata da Timestamp, è la struttura delle serie temporali più elementari.

Come creare una serie temporale di base Panda

Per creare una semplice serie temporale, importare prima i moduli o le librerie richiesti, come Panda, Numpy e DateTime. L'ora e la data non sono tipi di dati separati in Python, ma possono essere gestiti utilizzando il modulo DateTime, che può essere importato. Non è necessario installare il modulo Python DateTime all'esterno perché è già incluso in Python. Il modulo Python DateTime fornisce classi per lavorare con data e ora. In Panda, manipoteremo le serie temporali seguendo gli obiettivi sopra menzionati di analizzare le serie temporali.

Creiamo un elenco contenente gli oggetti DateTime.

Ora creeremo una serie utilizzando questo elenco contenente i valori DateTime. Useremo i valori della data come indice del nostro oggetto serie.

Abbiamo specificato l'indice per le serie utilizzando il parametro indice all'interno della funzione serie (). Estrando l'indice della serie, possiamo determinarne il tipo.

Come si può vedere, la struttura dei dati dell'indice della variabile è un datatimeindex.

Convertire i valori o i dati della stringa in timestamp

I valori della data o del tempo possono essere convertiti in diverse strutture di dati delle serie temporali. Tre diverse strutture di dati possono essere utilizzate per manipolare le serie temporali, i.e., TimeStamps, Struttura del periodo e Struttura Timedelta. Gli oggetti DateTimeIndex e Time Stamps sono i più comuni di queste strutture. Il metodo To_DateTime () può convertire una particolare data o serie di date in timestamp.

La funzione ha convertito il valore della data della stringa in timestamp. Diversi formati di date possono essere convertiti in oggetti DateTimeIndex utilizzando la funzione To_DateTime ().

Abbiamo superato i dati della data in quattro diversi formati all'interno di un elenco, i.e., [DateTime (2022,6,8), "7 agosto 2022", "2022-giugno-13", "20220406"]. Come potresti notare, la funzione ha convertito correttamente ciascun formato all'oggetto DataTimeIndex. Possiamo anche cambiare la struttura dei dati delle serie temporali. Per aggiungere codici di frequenza, è possibile modificare DateTimeIndex in periodIndex utilizzando il metodo TO_PERIOD (). Il valore "D", ad esempio, rappresenta una frequenza giornaliera.

Le date possono anche essere sottratte per determinare i giorni tra loro.

Abbiamo sottratto tutte le date dalla data all'indice 0. Viene restituito un oggetto TimeDeltainDex, che mostra i risultati come elenco contenente il numero di giorni dopo la sottrazione di ogni data con la data all'indice 0.

Utilizzando la funzione Date_Range per creare una serie temporale

Una serie di date può essere creata utilizzando diverse funzioni in panda. Per i timestamp, possiamo usare date_range (). Per il periodo, il period_range () e il timedelta_range () per creare dati delta del tempo. La funzione Date_Range () otterrà un DateTimeIndex con una frequenza specificata. Il metodo Date_Range () richiede la data di inizio e la data di fine.

Inoltre, è possibile utilizzare il parametro del periodo all'interno di Date_Range (). Devi solo specificare la data di inizio per raggiungere questo obiettivo. La funzione restituirà i dati per il periodo e la frequenza specificati. Il parametro FREQ può essere utilizzato anche quando si crea una serie temporale utilizzando Date_Range (). La frequenza predefinita del metodo dell'intervallo di date è quotidianamente. Possiamo usare il valore "H", che sta per l'ora, per ottenere la frequenza come ore.

Taglio dei dati utilizzando un timestamp

Creeremo prima un frame dati utilizzando il PD.Funzione DataFrame e l'indice verrà specificato come DateTimeIndex.

Innanzitutto, abbiamo creato una serie temporale e poi l'abbiamo specificata come l'indice del nostro frame dati. Per estrarre le date tra due date delle serie temporali, useremo l'operatore della fetta.

Sebbene il telaio di dati di base che abbiamo creato contenga dati con una frequenza giornaliera, possiamo ricamare i dati e selezionare come calcolare la statistica aggregata per la frequenza specificata. Invece di calcolare i dati a una frequenza giornaliera, possiamo invece calcolare i dati a una frequenza mensile.

Trovare statistiche riassuntive

Aggiungi una nuova colonna nel nostro frame di dati originale che calcola la somma di rotolamento per un periodo di due finestre. Possiamo utilizzare le statistiche sulla finestra di rotazione per analizzare e regolare i dati delle serie temporali. Per generare una finestra Rolling sulla colonna DataFrame, useremo il metodo Rolling (). Quindi la funzione Sum () verrà utilizzata per ottenere la somma del rotolamento.

È stata creata una nuova colonna "roll_sum" contenente i valori della somma del rotazione delle finestre specificate, i.e., 2.

Affrontare i valori mancanti

Come si può osservare, la colonna Roll Sum ha un valore mancante nella prima riga. Possiamo inoltrare o riempire i dati quando si tratta di valori di dati mancanti. Creeremo una nuova colonna utilizzando i valori della somma del rotazione per riempire i dati.

Abbiamo riempito il valore mancante utilizzando la funzione Fillna () e abbiamo utilizzato il parametro del metodo all'interno della funzione. È utile sostituire i dati nulli con valori realistici, come la media di un periodo. Tuttavia, ricorda che se hai a che fare con una serie temporale e vuoi che le tue statistiche siano realistiche, non dovresti riempire i tuoi dati perché farlo sarebbe l'equivalente di fare una previsione e ottenere le informazioni che non avresti periodo.

Conclusione

In questo articolo, abbiamo discusso delle serie temporali in Panda. Abbiamo discusso di quali sono le serie temporali, quali sono gli obiettivi principali dell'analisi delle serie temporali e perché abbiamo usato i panda per le serie temporali. In questo post, abbiamo dimostrato come eseguire una semplice manipolazione come la creazione di una semplice serie temporale, la taglio dei dati utilizzando un timestamp, la ricerca di statistiche di riepilogo e la gestione dei valori mancanti.