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行是从01/05/2018开始,然后它继续到02/05/2018,但仍然在第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
EDIT2 以下是日期更改的示例...
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
答案 0 :(得分:0)
有不同的选择,一种方法是:
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。