Pandas переставляет таблицу часов и даты в таблицу данных datetime - PullRequest
0 голосов
/ 11 сентября 2018

У меня есть набор данных Excel, который выглядит следующим образом:

    24      25      26      27
1   0,3818  0,0713  0,07222 0,3542
2   0,17802 0,04508 0,06877 0,17319
3   0,22356 0,07314 0,04991 0,22448
4   0,1771  0,07038 0,07406 0,19136
5   0,19389 0,06164 0,05497 0,18538
6   0,20401 0,07475 0,06417 0,21413
7   0,18354 0,07245 0,07337 0,17756
8   0,46184 0,04669 0,0506  0,28819
9   0,43838 0,0667  0,06785 0,4692
10  0,78292 0,07038 0,07291 0,66424
11  1,81792 0,06003 0,04508 1,17001
12  2,40833 0,05451 0,07245 1,08422
13  1,55746 0,07038 0,07314 0,61272
14  1,2075  0,06509 0,04485 0,40871
15  2,4196  0,05014 0,07291 0,27393
16  0,95979 0,07015 0,07291 0,2323
17  0,51681 0,06992 0,04554 0,2024
18  0,46529 0,04232 0,85192 0,35558
19  0,58328 0,06992 1,59321 0,60283
20  1,40185 0,07015 0,82869 1,23326
21  0,71484 0,04692 1,05041 1,01131
22  0,48576 0,07291 0,80707 1,4697
23  0,04278 0,07245 0,57523 1,72316
24  0,07291 0,04554 0,5175  0,61364

Первый столбец представляет часы дня, первая строка - номер дня года (24 соответствует 24-му числуЯнварь, строки охватывают весь год, заканчиваясь номером дня 365) за 2013 год.

То, что я хочу получить, - это кадр данных, который в качестве первого столбца содержит дату с указанием года и месяца.-день-час и для которого правильно указано соответствующее часовое значение.

'date'            'value'
2013-01-24 01:00  0.3818
2013-01-24 02:00  0.17802
2013-01-24 03:00  0.22356
...

Набор данных Excel

Спасибо за помощь.

1 Ответ

0 голосов
/ 11 сентября 2018

Это лучшее, что у меня есть:

если ваши данные находятся на pandas.DataFrame с именем df, вы можете сделать:

df2 = df.unstack()
start = pd.Timestamp('01/01/2013')
df2 = df2.reset_index()
df2['date'] = [start + pd.DateOffset(days = int(x)-1) for x in  df2.level_0.values]
df2['date'] +=  pd.to_timedelta(df2.level_1, unit='h')
df2.index = df2.date
df2 = df2[0]

Результат

    date
2013-01-24 00:00:00     0,3818
2013-01-24 01:00:00    0,17802
2013-01-24 02:00:00    0,22356
2013-01-24 03:00:00     0,1771
2013-01-24 04:00:00    0,19389
2013-01-24 05:00:00    0,20401
2013-01-24 06:00:00    0,18354
2013-01-24 07:00:00    0,46184
2013-01-24 08:00:00    0,43838
2013-01-24 09:00:00    0,78292
2013-01-24 10:00:00    1,81792
2013-01-24 11:00:00    2,40833
2013-01-24 12:00:00    1,55746
2013-01-24 13:00:00     1,2075
2013-01-24 14:00:00     2,4196
2013-01-24 15:00:00    0,95979
2013-01-24 16:00:00    0,51681
2013-01-24 17:00:00    0,46529
2013-01-24 18:00:00    0,58328
2013-01-24 19:00:00    1,40185
2013-01-24 20:00:00    0,71484
2013-01-24 21:00:00    0,48576
2013-01-24 22:00:00    0,04278
2013-01-24 23:00:00    0,07291
2013-01-25 00:00:00     0,0713
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...