Воссоздание потерянных секунд + миллисекунд в Pandas DatetimeIndex - PullRequest
0 голосов
/ 13 ноября 2018

У меня есть данные от устройства GPS, которое измеряет частоту 10 Гц, но по какой-то причине поставщик предоставляет временные метки с точностью до минуты.Таким образом, я получаю несколько копий.

Есть ли простой способ воссоздать недостающие секунды и миллисекунды, если предположить, что порядок меток времени правильный, а время начинается с s = 0 и мс = 0?

Контрольный пример:

import pandas as pd

id_like = pd.date_range(start = '12:01:05', end = '12:04:05', freq='100ms')
ive_got = id_like.floor('1Min')

1 Ответ

0 голосов
/ 13 ноября 2018

IIUC, вы можете переопределить индексацию вашего фрейма данных, используя pd.date_range:

np.random.seed(0)
id_like = pd.date_range(start = '12:01:05', end = '12:04:05', freq='100ms')
ive_got = id_like.floor('1Min')
df = pd.DataFrame(np.random.random(1801), index=ive_got)

Печать входных данных (df.head (10)):

                            0
2018-11-13 12:01:00  0.548814
2018-11-13 12:01:00  0.715189
2018-11-13 12:01:00  0.602763
2018-11-13 12:01:00  0.544883
2018-11-13 12:01:00  0.423655
2018-11-13 12:01:00  0.645894
2018-11-13 12:01:00  0.437587
2018-11-13 12:01:00  0.891773
2018-11-13 12:01:00  0.963663
2018-11-13 12:01:00  0.383442

Переопределил ваш индекс, используя pd.date_range с частотой:

df.index = pd.date_range(df.index.min(), df.index.max(), freq='100ms')

Вывод на печать (df.head (10)):

                                0
2018-11-13 12:01:00.000  0.548814
2018-11-13 12:01:00.100  0.715189
2018-11-13 12:01:00.200  0.602763
2018-11-13 12:01:00.300  0.544883
2018-11-13 12:01:00.400  0.423655
2018-11-13 12:01:00.500  0.645894
2018-11-13 12:01:00.600  0.437587
2018-11-13 12:01:00.700  0.891773
2018-11-13 12:01:00.800  0.963663
2018-11-13 12:01:00.900  0.383442
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...