У меня есть фрейм данных со столбцами идентификаторов (site_id, type_id, equipment_id), отметкой времени и значением, как показано ниже.
>>>print(df.head())
site_id type_id equipment_id timestamp value
47 9 332859965468 2018-07-04 10:30:04.052000+10:00 23.000000
47 9 332859965468 2018-07-04 10:30:04.064000+10:00 22.050505
47 9 332859965468 2018-07-04 10:30:04.090000+10:00 26.046154
47 9 332859965468 2018-07-04 10:30:04.101000+10:00 22.000000
47 9 332859965468 2018-07-04 10:30:04.113000+10:00 191.989868
Я пытаюсь выполнить повторную выборку в каждой группе (site_id, type_id, equipment_id), используя следующий код
>>> df = df \
... .set_index(['timestamp']) \
... .sort_values(['site_id','type_id','equipment_id','timestamp']) \
... .groupby(['site_id','type_id','equipment_id']) \
... .resample('15T') \
... .mean()
Я получаю неожиданные результаты, все значения идентификатора из индекса были продублированы. Похоже, что для агрегации используется тип dtype вместо того, находится ли столбец в индексе или нет? Я что-то не так делаю?
site_id type_id equipment_id value
site_id type_id equipment_id timestamp
47 9 332859965468 2018-07-04 10:30:00+10:00 47.0 9.0 3.328600e+11 58.718625
2018-07-04 10:45:00+10:00 47.0 9.0 3.328600e+11 59.175833
2018-07-04 11:00:00+10:00 47.0 9.0 3.328600e+11 59.238318
2018-07-04 11:15:00+10:00 47.0 9.0 3.328600e+11 58.982763
Редактировать: я заметил, что добавление .reset_index (drop = True) удаляет дубликаты столбцов - но проблема в том, что столбцы с целочисленным идентификатором были преобразованы в числа с плавающей точкой?