Я хочу преобразовать почасовое Pandas Series в DataFrame как DataFrame, проиндексированное только с датой и каждым часом в виде столбца.
Например, допустим, у меня есть эта серия:
YEAR = 2017
serie = pd.Series(pd.date_range(
start=f'{YEAR}-01-01', end=f'{YEAR}-12-31 23:00:00', freq='H'))
Но я хочу, чтобы это было так:
h01 h02 h03 h04 h05 ...
Date
2017-01-01 data data data data data ...
Вероятно, 01:00:00 преобразуется в 1, 02:00:00 в 2 и так далее.
Это просто данные. Я меняю их для возможных недоразумений.






Я считаю, что ваш Series с DatetimeIndex и заполнил некоторые данные.
Затем нужны DataFrame.pivot с DataFrame.assign для новых столбцов, созданных DatetimeIndex.date и DatetimeIndex.strftime и Series.to_frame для одного столбца DataFrame:
YEAR = 2017
serie = pd.Series(np.arange(8760), pd.date_range(
start=f'{YEAR}-01-01', end=f'{YEAR}-12-31 23:00:00', freq='H'))
df = serie.to_frame('vals').assign(date = lambda x: x.index.date,
hour = lambda x: x.index.strftime('h%H'))
#print (df)
df1 = df.pivot('date','hour','vals')
#print (df1)
Другое решение:
serie.index = [serie.index.date, serie.index.strftime('h%H')]
df1 = serie.unstack()
Что такое ценности
1 2 3 4 5?