Из долгосрочного набора данных на почасовой основе я хочу получить медианные значения для каждого часа 1 репрезентативного года. Например: среднее значение первого часа с 1 января для репрезентативного года рассчитывается с 1 января каждого года в наборе данных. Набор данных доступен здесь:https://github.com/sugarello/sugarello/blob/master/dfsolarbwdlz.csv
Попробовав roll() и groupby(), я создал новые фреймы данных, определив критерии для индекса. До сих пор я пробовал:
import numpy as np
import pandas as pd
from datetime import datetime
import matplotlib.pyplot as plt
dfsolar = pd.read_csv('dfsolarbwdlz.csv', delimiter=';')
dfsolar['MESS_DATUM'] = pd.to_datetime(dfsolar['MESS_DATUM'], format='%Y%m%d%H')
dfsolar.set_index('MESS_DATUM')
dfsolar.index = dfsolar['MESS_DATUM']
dfsolarr = dfsolar.drop(columns=["MESS_DATUM"])
Задав критерии для месяца, дня и часа, я частично получаю искомые данные. Это непрактично, потому что мне нужно повторить это 8760 раз. Например, только для 13-го часа 1 января:
dfsolarWI00 = dfsolarr[((dfsolarr.index.month == 1) & (dfsolarr.index.day == 1) & (dfsolarr.index.hour == 13))]
Результат моей последней попытки выглядит так: здесь
Я предполагаю одно решение в sort_index()/sort(). Однако я не смог настроить адекватный алгоритм поиска. Я на правильном пути? Какое элегантное решение моей проблемы?