У меня есть такой фрейм данных:
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
16.01.2018 25.45 24.99 24.68 25.00 26.19 28.96 35.78 44.66 41.75 41.58 41.48 41.66 40.66 40.39 40.33 40.73 41.58 45.06 45.84 42.69 39.56 35.4 33.27 29.49
17.01.2018 28.78 27.71 26.55 25.76 25.97 26.97 30.89 36.06 41.24 40.67 39.86 39.42 38.17 37.31 36.58 36.78 37.8 40.78 40.8 38.95 34.34 31.95 31.56 29.26
, где индекс - это дата, когда произошло определенное значение, а в столбце (от 0 до 23) указан час. Я хотел бы разложить стек данных, чтобы иметь индекс даты и времени и один столбец с соответствующим значением:
16.01.2018 00:00:00 25.45
16.01.2018 01:00:00 24.99
16.01.2018 02:00:00 25.68
16.01.2018 03:00:00 25.00
....
В данный момент я делаю:
index = pd.date_range(start = df.index[0], periods=len(df.unstack()), freq='H')
new_df = pd.DataFrame(index=index)
for d in new_df.index.date:
for h in new_df.index.hour:
new_df['value'] = df.unstack()[h][d]
, но для l oop требуются годы ... у вас есть лучшее (более быстрое) решение?