Я использую Python Pandas в первый раз. У меня есть данные задержки трафика 5-минутных в формате CSV:Интерполяция и регуляризация временных рядов Python pandas
...
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
...
Там несколько вопросов:
- для некоторых меток времени там не хватает данных (-1)
- отсутствующие записи (также 2/3 часов подряд)
- частота наблюдений не точно 5 минут, но на самом деле теряет несколько секунд один раз в то время
Я хотел бы получить регулярные временные ряды, поэтому с записями каждые (ровно) 5 минут (и без недостающего значения). Я успешно интерполированный временные ряды с помощью следующего кода аппроксимировать -1 значения с этим кодом:
ts = pd.TimeSeries(values, index=timestamps)
ts.interpolate(method='cubic', downcast='infer')
Как и интерполировать и упорядочение частоты наблюдений? Спасибо всем за помощь.
Спасибо, что он отлично работает! Вместо этого я могу вместо этого добавить обычные 5-минутные метки времени в ряд с nan как значениями, а затем интерполировать их с помощью сплайна 3-го порядка? – riccamini
Я не понимаю, что вы подразумеваете под «добавлением регулярных 5-минутных временных меток к серии с nan как значениями», но я добавил пример, показывающий интерполяцию «временем» и сплайнами order-3. – unutbu
Я имею в виду, что будет какая-либо разница, если вместо этого линейно интерполировать временные ряды с ** resample() **, мы сначала построим временные ряды с простыми вводами данных, затем добавим записи типа 2015- 01-01-08: 00, nan 2015-01-01-08: 05, nan и т. Д., И, наконец, интерполировать их с помощью заказа 3 сплайна? – riccamini