Из долгосрочного набора данных на почасовой основе я хочу, чтобы средние значения приходились на каждый час 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 ()/Сортировать(). Однако я не смог настроить адекватный алгоритм поиска. Я на правильном пути? Что такое элегантное решение моей проблемы?