Как перевести извлеченные часы из даты в час + (дата в часах)? - PullRequest
0 голосов
/ 31 мая 2018
       0   1
0      6   7
1     11  13
2      7   8
3     16  17
4      5   6
5     18  20
6      8   9
7     13  13
8      3   4
9     13  14
10     5   6
11    17  17
12    11  12
13    21  22
14    19  20
15     6   7
16    13  14
17    12  13
18     3   4
19     3   4
20    11  13
21    12  13
22     4   5
23     5   6
24    13  14
25    13  14
26     1   3
27     6   6
28     4   5
29    12  14
  ..  ..
9689  10  11
9690  16  17
9691  13  13
9692   8   8
9693   8   9
9694  12  13
9695  13  13
9696  19  19
9697  14  14
9698  13  13
9699  14  14
9700  19  19
9701  13  13
9702  19  19
9703  14  14
9704  13  13
9705   8   9
9706   7   8
9707   7   8
9708  17  18
9709  22  22
9710  12  12
9711   7   8
9712  20  22
9713  11  12
9714  16  17
9715   7   7
9716  24   2
9717   8  10
9718   8  10

У меня есть этот кадр данных, где столбцы соответствуют часу 24-часовых часов (от 1 до 24).В настоящее время они извлекаются из даты с использованием:

time = datetime.datetime.strptime(POXTime, '%d/%m/%Y %H:%M')
POXHour = time.hour

Мне интересно, может ли кто-нибудь сказать мне, как я могу добавить 24 к каждой записи, следующей за днем ​​(основываясь на первой дате, которая появляется всписок от 1 до 24 часов).Например, первые 1000 или около того строк этого информационного кадра относятся к 05.05.2008, затем они переходят к 05.02.2008, но все еще говорят «17» в течение 17-го часа, где я хочу сказать «41» (17+24) ... и так далее для каждого последующего дня.Надеюсь, что это имеет смысл!Кто-нибудь может помочь?

РЕДАКТИРОВАТЬ

Вот первые несколько строк данных без даты / времени, которые будут удалены только для часа:

   POETime           POXTime
0     01/05/2018 05:33  01/05/2018 06:31
1     01/05/2018 10:56  01/05/2018 12:18
2     01/05/2018 06:22  01/05/2018 07:21
3     01/05/2018 15:17  01/05/2018 16:40
4     01/05/2018 04:19  01/05/2018 05:16
5     01/05/2018 17:41  01/05/2018 19:02
6     01/05/2018 07:56  01/05/2018 08:51

РЕДАКТИРОВАТЬ2 Вотпример изменения даты ...

1360    01/05/2018 02:18    01/05/2018 02:18
1361    01/05/2018 21:47    01/05/2018 21:47
1362    01/05/2018 11:50    01/05/2018 11:50
1363    01/05/2018 07:28    01/05/2018 07:52
1364    01/05/2018 00:09    01/05/2018 00:09
1365    01/05/2018 15:52    01/05/2018 17:36
1366    01/05/2018 08:27    01/05/2018 09:32
1367    01/05/2018 04:57    01/05/2018 06:06
1368    01/05/2018 09:58    01/05/2018 11:44
1369    01/05/2018 16:32    01/05/2018 17:22
0   02/05/2018 02:17    02/05/2018 03:24
1   02/05/2018 12:08    02/05/2018 13:28
2   02/05/2018 06:31    02/05/2018 07:39
3   02/05/2018 15:20    02/05/2018 16:57
4   02/05/2018 04:06    02/05/2018 05:13
5   02/05/2018 17:18    02/05/2018 18:53
6   02/05/2018 08:32    02/05/2018 09:24
7   02/05/2018 02:36    02/05/2018 03:30
8   02/05/2018 03:40    02/05/2018 04:30

, который я хочу вывести как ...

1360    01/05/2018 02:18    01/05/2018 02:18        3   3
1361    01/05/2018 21:47    01/05/2018 21:47        10  10
1362    01/05/2018 11:50    01/05/2018 11:50        12  12
1363    01/05/2018 07:28    01/05/2018 07:52        8   8
1364    01/05/2018 00:09    01/05/2018 00:09        1   1
1365    01/05/2018 15:52    01/05/2018 17:36        16  18
1366    01/05/2018 08:27    01/05/2018 09:32        9   10
1367    01/05/2018 04:57    01/05/2018 06:06        5   7
1368    01/05/2018 09:58    01/05/2018 11:44        10  12
1369    01/05/2018 16:32    01/05/2018 17:22        17  18
1   02/05/2018 02:17    02/05/2018 03:24        27  28
2   02/05/2018 12:08    02/05/2018 13:28        37  38
3   02/05/2018 06:31    02/05/2018 07:39        31  32
4   02/05/2018 15:20    02/05/2018 16:57        40  41
5   02/05/2018 04:06    02/05/2018 05:13        29  30
6   02/05/2018 17:18    02/05/2018 18:53        42  43
6   02/05/2018 08:32    02/05/2018 09:24        33  34
7   02/05/2018 02:36    02/05/2018 03:30        27  28
8   02/05/2018 03:40    02/05/2018 04:30        28  29

1 Ответ

0 голосов
/ 31 мая 2018

Существует другой вариант, один из способов:

ref_date_POE = min(df['POETime']) # or any date you want
df['POEHours'] = (df['POETime'] - ref_date_POE).dt.days*24 + df['POETime'].dt.hour +1

Здесь (df['POETime'] - ref_date_POE).dt.days даст вам количество дней между датами в df['POETime'] и ref_date_POE, поэтому * 24 даст вам то, что выхочу.Для +1 кажется, что у вас есть 3, когда 2:18 и df['POETime'].dt.hour даст вам 2, поэтому просто добавьте 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...