Я хочу выполнить некоторую обработку данных для данных датчиков (около 300 различных датчиков). Это пример необработанных данных от датчика температуры:
"2018-06-30T13:17:05.986Z" 30.5
"2018-06-30T13:12:05.984Z" 30.3
"2018-06-30T13:07:05.934Z" 29.5
"2018-06-30T13:02:05.873Z" 30.3
"2018-06-30T12:57:05.904Z" 30
Я хочу пересчитать данные для сглаживания даты:
13:00:00
13:05:00
13:10:00
...
Я написал некоторый код, который работает, но невероятно медленно, когда используется с большими файлами. Мой код просто увеличивает все данные до 1 секунды с помощью линейной интерполяции. и затем уменьшают частоту до запрошенной частоты.
Есть ли более быстрый способ добиться этого?
EDIT:
данные датчика записываются в базу данных, и мой код загружает данные из произвольного временного интервала из базы данных
РЕДАКТИРОВАТЬ2: мой рабочий код
upsampled = dataframe.resample('1S').asfreq()
upsampled = upsampled.interpolate(method=method, limit=limitT) # ffill or bfill for some sensors
resampled = upsampled.astype(float).resample(str(sampling_time) + 'S').mean() # for temperature
resampled = upsampled.astype(float).resample(str(sampling_time) + 'S').asfreq() # for everything else