Sto usando Python Pandas per la prima volta. Ho di 5 minuti i dati sul traffico di ritardo in formato CSV:Interpolazione e regolarizzazione delle serie temporali dei panda di Python
...
2015-01-04 08:29:05,271238
2015-01-04 08:34:05,329285
2015-01-04 08:39:05,-1
2015-01-04 08:44:05,260260
2015-01-04 08:49:05,263711
...
Ci sono diverse questioni:
- per alcuni timestamp c'è mancante di dati (-1)
- voci mancanti (anche 2/3 ore consecutive)
- la frequenza delle osservazioni non è esattamente 5 minuti, ma in realtà perde alcuni secondi tanto
Vorrei ottenere una serie storica regolare, quindi con voci ogni (esattamente) 5 minuti (e nessun valore mancante). Ho interpolato con successo le serie storiche con il seguente codice, sul ravvicinamento delle -1 valori con questo codice:
ts = pd.TimeSeries(values, index=timestamps)
ts.interpolate(method='cubic', downcast='infer')
Come posso sia interpolare e regolarizzare la frequenza delle osservazioni? Grazie a tutti per l'aiuto.
Grazie, funziona perfettamente! C'è un modo in cui posso prima aggiungere i normali timestamp di 5 minuti alla serie con nan come valori, e quindi interpolarli con una spline di ordine 3? – riccamini
Non capisco cosa intendi con "aggiungi i normali timestamp di 5 minuti alla serie con nan come valori", ma ho aggiunto un esempio che mostra l'interpolazione di "time" e con le spline order-3. – unutbu
Voglio dire, ci sarebbe qualche differenza se invece interpolate linearmente le serie temporali con ** resample() **, costruiamo prima una serie temporale con le semplici voci nei dati, quindi aggiungiamo voci del tipo 2015- 01-01-08: 00, nan 2015-01-01-08: 05, nan e così via, e infine li si interpola con un ordine 3 spline? – riccamini