Я хотел бы преобразовать данные временных рядов в представление по часам, где каждый день является столбцом, включая название каждого дня.
У меня есть фрейм данных dand, состоящий из 3 параметров (A, B, C), измеряется каждые 5 минут в течение всего месяца (30 дней).Так что это форма (8640,3).Каждый столбец представляет один параметр для всего месяца, причем индексом является отметка времени от начала месяца до конца в формате «% Y /% m /% d% H:% M:% S».
Теперь я хотел бы изменить / повернуть этот df так, чтобы у меня было 3 словаря (по одному для каждого измерения), где указываются часы и минуты "% H:% M:% S" и каждый день (30) как столбцы.По сути, меняя форму на 3 дикта, каждый из них (288,30).Последнее требование заключается в том, что имя столбца - это день недели, а не просто число, чтобы я мог определить, является ли его день недели или выходные дни.
Ниже приведено то, что я пытался до сих порполучить форму в виде 3 диктов (288,30).
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randint(0,100,size=(8640, 3)),index=pd.date_range(start="20180301", freq='5T',periods=8640),columns=['A','B','C'])
df_all_days={}
df_all_days_exp={}
for column in list(df):
df_all_days[column]=df.groupby(df.index.time)[column].aggregate(lambda x:list(x))
df_all_days_exp[column]=df_all_days[column].apply(pd.Series)
Хотя df_all_days_exp дает мне желаемую структуру, 30 столбцов названы с номерами, а не с именем дня.Как я могу сопоставить это, чтобы столбцы были названы в честь дня (понедельник, вторник и т. Д.)?