如何将从日期中提取的小时转换为小时+(日期中的小时)?

2024-10-03 11:13:49 发布

您现在位置:Python中文网/ 问答频道 /正文

       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行左右是从2018年5月1日开始的,然后它继续到2018年5月2日,但在第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

Tags: 数据方法编辑列表datetimetime时间条目
1条回答
网友
1楼 · 发布于 2024-10-03 11:13:49

有不同的选择,一种方法是:

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,当它是2:18时,似乎有3,df['POETime'].dt.hour会给你2,所以只要加1。你知道吗

相关问题 更多 >