У меня есть фрейм данных (df) со столбцами с именами дата, год, месяц, день, час и энергия. Это многолетний временной ряд, который я хочу преобразовать в усредненный временной ряд за один год (8760 баллов, т.е. 365 * 24 балла), где столбец Energy_Mean представляет собой усредненное значение.
df is
date Year Month Day Hour Energy
1/1/1999 0:00 1999 Jan 1 1 45.0
1/1/1999 1:00 1999 Jan 1 2 73.5
1/1/1999 2:00 1999 Jan 1 3 82.4
1/1/1999 3:00 1999 Jan 1 4 90.0
1/1/1999 4:00 1999 Jan 1 5 72.2
.
.
.
12/31/1999 23:00 1999 Dec 12 24 77.0
.
.
.
12/31/2019 23:00 2019 Dec 12 24 84.3
Задача - преобразовать ее в усредненную форму, как показано ниже:
Month Day Hour Energy_Mean
Jan 1 1 22.45
Jan 1 2 73.5
Jan 1 3 57.4
Jan 1 4 88.0
Jan 1 5 33.2
.
.
.
Dec 31 24 77.0
Попытка выяснить, является ли pivot_table или groupby - лучший метод из pandas, используемый для преобразования временных рядов во фрейм данных 8760 отсчетов. Кроме того, я хочу, чтобы вывод сортировался по месяцам, а НЕ по алфавиту. Как январь, февраль, март, апрель НЕ апрель, август ..
Мой код:
p50_8760 = df.groupby(['Month', 'Day', 'Hour'])['Energy'].mean()
df_p50_8760 = p50_8760.to_frame()
В выходном файле отсутствуют имена столбцов или количество точек данных 8760 точек данных .