Helpers - компьютеры, интернет, программирование

Как рассчитать медианные значения за год из набора данных за 29 лет как на почасовой основе?

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


  • Или я должен использовать запросы на основе индекса? Буду очень рад любому совету. 09.02.2020

Ответы:


1

После более глубокого изучения условий groupby-Method я изменил порядок следующим образом:

dfsolarrtest = dfsolarr.groupby([dfsolarr.index.month, dfsolarr.index.day, dfsolarr.index.hour]).median()

 dfsolarrtest.plot(figsize=(80,40))

и получил следующий график: введите здесь описание изображения

Если я не ошибаюсь, я нашел свое решение, изменив групповые условия на основе изменяющихся частей даты моего заданного формата. Однако: я сгенерировал набор данных, состоящий из 8784 строк, что определенно не равно 8760 часам. Кроме того, одиночные средние значения по:

median_example = dfsolarr[((dfsolar.index.month == 1) & (dfsolarr.index.hour == 16))]

median_example.median()

Не равны одной и той же дате из рассчитанного набора данных с помощью groupby. Любая помощь?

12.02.2020
Новые материалы

Интуитивное понимание тензоров в машинном обучении
Тензор является важной концепцией во многих научных областях, таких как математика, физика, обработка сигналов и компьютерное зрение, и это лишь некоторые из них. В математике тензор — это..

Использование машинного обучения для диагностики болезни Альцгеймера, часть 4
Маркеры семантической согласованности для ранней диагностики болезни Альцгеймера (arXiv) Автор: Давиде Колла , Маттео Дельсанто , Марко Агосто , Бенедетто Витиелло , Даниэле Паоло Радичони..

Почему объяснимость так важна прямо сейчас?
По мере того, как системы искусственного интеллекта и инструменты на основе машинного обучения распространяются в нашей повседневной жизни, как практики, так и критики все чаще заявляют о..

Анимированный математический анализ
Использование Manim для создания математических анимированных визуализаций Визуализация данных помогает понять скрытые закономерности в данных, которые невозможно визуализировать..

Создание простого слайдера изображений с помощью JavaScript
Узнайте, как создать базовый слайдер изображений с помощью HTML, CSS и JavaScript. Введение В этом уроке мы создадим удобный слайдер изображений, используя JavaScript, HTML и CSS. Ползунок..

Создание базы данных с помощью супергероя «Python»
В этом посте мы узнаем, как создать «базу данных SQLite с помощью модуля python sqlite3, создав простую функцию входа и регистрации. Готовы ли вы к этому путешествию? Если да , давайте приступим..

ИИ для чайников: руководство для начинающих по пониманию будущего технологий
Вы чувствуете, что остались позади в мире ИИ? Не волнуйтесь, вы не одиноки! Со всей этой шумихой вокруг искусственного интеллекта может быть трудно понять, с чего начать. Но не позволяйте сленгу..