【发布时间】:2021-07-29 05:13:56
【问题描述】:
在 Python 3x 中,我有一些已填充的列表,我已将它们放入以“ID”和“时间”为列的 pandas 数据框中:
import pandas as pd
df = pd.DataFrame({'ID': ID, 'UTCTime': UTCTime})
print(df)
ID UTCTime
3 4 2021-04-03 21:56:53
4 5 2021-04-03 21:56:55
5 6 2021-04-03 21:56:57
6 7 2021-04-03 22:00:07
7 8 2021-04-03 22:00:09
8 9 2021-04-03 22:00:11
9 10 2021-04-03 22:05:08
10 11 2021-04-03 22:05:10
...
这就是数据的样子,持续了几个月。时间戳之间的间隔不相等。
但现在我想添加一个额外的列“NightID”并识别每个连续的夜晚并给它一个唯一的编号。因此,选择 18:00 到 06:00 之间的时间,将其称为“1”,然后到第二天晚上,将其称为“2”,以此类推整个数据集。 所以它看起来像这样:
ID UTCTime nightID
1 27/04/2021 18:00 1
2 27/04/2021 21:05 1
3 28/04/2021 01:50 1
4 28/04/2021 02:25 1
5 28/04/2021 02:30 1
6 28/04/2021 05:59 1
7 28/04/2021 15:00 0
8 28/04/2021 18:00 2
9 28/04/2021 19:40 2
10 28/04/2021 23:50 2
11 29/04/2021 00:05 2
12 29/04/2021 00:35 2
13 29/04/2021 01:55 2
14 29/04/2021 02:30 2
15 29/04/2021 05:59 2
16 29/04/2021 06:01 0
17 29/04/2021 18:01 3
18 29/04/2021 22:30 3
19 29/04/2021 22:35 3
知道如何做到这一点吗?
非常感谢所有帮助!
亲切的问候,马丁
【问题讨论】:
-
应该如何考虑7:00这样的时间?它是第二天晚上的一部分还是应该被排除在外而不是编号?如果 5:59 是当前晚上,是第二天 6:00 还是当前晚上的一部分?
-
您好,Henry,感谢您抽出宝贵时间查看我的问题。是的,可以排除这一天。 05:59:59 是晚上,06:00:00 是白天。 17:59:59 是白天,18:00:00 是晚上。
-
额外信息:可以排除这一天或将其赋值为 0