У меня есть кадр данных, в котором у меня есть несколько идентификаторов, и для каждого идентификатора у меня есть некоторые значения и временные метки (примерно одно значение каждые 5 минут в течение 5-7 дней подряд). Я хотел бы выбрать для каждого часа и для каждого идентификатора среднее значение, медиану и дисперсию значений в этот час и сохранить их в разных столбцах, как в следующем результате:
hour mean var median ID
0 2 4 4 1234
1 4 5 3 1234
...
23 2 2 3 1234
Мои столбцы:
ID int64
Value float64
Date datetime64[ns]
dtype: object
Мои временные метки имеют следующий тип:
%Y-%m-%d %H:%M:%S.%f
Как создать окончательный фрейм данных для каждого идентификатора? Большое спасибо
Редактировать:
В следующей строке я правильно создал столбец с часами:
df['hour'] = df.Date.dt.hour
Теперь проблема в том, что у меня есть очень длинный столбец с часами, одинаковыми, и если я использую ресемплинг следующим образом:
df = df.set_index('Date').resample('60T').mean().reset_index()
автоматически он стирает столбцы значений и перезаписывает их средними значениями. Я хотел бы сохранить эти столбцы, чтобы я мог создавать разные столбцы для среднего значения, дисперсии и медианы на основе значений в столбцах «Значение». Как я могу сделать эту часть?