Używam Pand Pythona po raz pierwszy. Mam 5-minutowym opóźnieniem danych o ruchu w formacie csv:Python pandy, interpolacja i regulacja szeregów czasowych
...
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
...
Istnieje kilka kwestii:
- dla niektórych znaczników czasu nie brakuje danych (-1)
- brakujące wpisy (również 2/3 kolejne godziny)
- częstotliwość obserwacji nie jest dokładnie 5 minut, ale w rzeczywistości traci kilka sekund raz na jakiś czas
Chciałbym uzyskać regularne serie czasowe, więc z wpisami co (dokładnie) 5 minut (i brak braków). I udało się interpolowane szereg czasowy z następującego kodu do zbliżenia wartości -1 z tym kodem:
ts = pd.TimeSeries(values, index=timestamps)
ts.interpolate(method='cubic', downcast='infer')
Jak mogę zarówno interpolacji i uregulować częstotliwość obserwacji? Dziękuję wszystkim za pomoc.
Dziękuję, że działa idealnie! Jest sposób, w jaki mogę zamiast tego dodać zwykłe 5-minutowe znaczniki czasu do serii z wartościami nan jako wartościami, a następnie interpolować je za pomocą splajnu 3 rzędu? – riccamini
Nie rozumiem, co masz na myśli przez "dodawanie zwykłych 5-minutowych znaczników czasu do serii z wartościami nan jako wartościami", ale dodałem przykład pokazujący interpolację według 'czasu' i spacji-3. – unutbu
Mam na myśli różnicę, jeśli zamiast tego liniowo interpolować szeregi czasowe za pomocą ** resample() **, najpierw budujemy serie czasowe ze zwykłymi wpisami w danych, a następnie dodajemy wpisy typu 2015- 01-01-08: 00, nan 2015-01-01-08: 05, nan i tak dalej, a na końcu wstawić je za pomocą 3 spline? – riccamini