У меня есть таймер наблюдений с разрешением одной минуты для нескольких не непрерывных, но полных дней. Данные организованы как сводная таблица с днями по столбцам и временам в строках.
2006-01-21 2006-01-24 ... 2006-02-08 2006-03-22
00:00:00 5.80 4.14 ... 7.03 4.27
00:01:00 4.71 5.22 ... 7.04 5.66
00:02:00 4.82 5.57 ... 4.11 5.04
00:03:00 3.20 4.11 ... 7.38 4.79
00:04:00 2.67 4.08 ... 6.39 6.91
Я должен выполнять статистику по наблюдениям, происходящим в одно и то же время в разные дни, также учитывая влияние агрегирования времени (передискретизации).
Mean StD
00:00:00 ... ...
00:01:00 ... ...
00:02:00 ... ...
Mean StD
00:10:00 ... ...
00:20:00 ... ...
00:30:00 ... ...
На данный момент я просто держу dataframe как сводную таблицу, преобразовывая индекс и столбцы в объект datetime.time
и datetime.date
, но у меня возникают проблемы, когда:
Можете ли вы предложить наиболее эффективный способ структурирования DataFrame для такого рода операций?
Мой подход состоял в том, чтобы изменить данные только на три столбца: дата, время, значение. Таким образом, вы можете делать свои скопления, делая groupby
по времени. Выбор между двумя датами становится проще, потому что теперь вы выбираете строки, а не столбцы. Ремамплинг на самом деле не влияет на него и зависит от метода повторной выборки.