Ich verwende Python Pandas zum ersten Mal. Ich habe 5-min Verzögerung Verkehrsdaten im CSV-Format:Python Pandas Zeitreihe Interpolation und Regularisierung
...
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
...
Es gibt mehrere Probleme:
- für einige Zeitstempel gibt die Daten (-1)
- fehlende Einträge fehlt (auch 2/3 aufeinanderfolgende Stunden)
- die Häufigkeit der Beobachtungen sind nicht genau 5 Minuten, verliert aber tatsächlich einige Sekunden ab und zu
Ich möchte eine regelmäßige Zeitreihe erhalten, also mit Einträgen alle (genau) 5 Minuten (und keine fehlenden Valus). Ich habe interpoliert erfolgreich die Zeitreihe mit dem folgenden Code, um die -1 Werte mit diesem Code zu nähern:
ts = pd.TimeSeries(values, index=timestamps)
ts.interpolate(method='cubic', downcast='infer')
Wie kann ich beide interpolieren und die Häufigkeit der Beobachtungen regularisieren? Danke euch allen für die Hilfe.
Vielen Dank, es funktioniert perfekt! Es gibt einen Weg, wie ich stattdessen die regulären 5-Minuten-Zeitstempel zu der Serie mit nan als Werte hinzufügen und sie dann mit einem 3-Spline-Befehl interpolieren kann? – riccamini
Ich verstehe nicht, was du meinst "füge die regulären 5 Minuten Zeitstempel zu der Serie mit nan als Werte hinzu", aber ich habe ein Beispiel hinzugefügt, das die Interpolation nach "time" und mit order-3 Splines zeigt. – unutbu
Ich meine, es wäre ein Unterschied, wenn stattdessen linear die Zeitreihe mit ** resample() ** interpoliert, wir bauen zuerst eine Zeitreihe mit den einfachen Einträgen in den Daten, dann fügen wir Einträge vom Typ 2015- 01-01-08: 00, nan 2015-01-01-08: 05, nan und so weiter, und schließlich interpolieren sie mit einem Auftrag 3 Spline? – riccamini