在Python 3x中,我有一些填充列表,我将它们放在一个数据框中,以“ID”和“Time”作为列:
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
你知道如何做到这一点吗
非常感谢您的帮助
你好,玛蒂恩
让我们试试这样的方法:
资料来源:
输出:
在没有额外变量和列的情况下
使用
shift
查找日期更改,并使用cumsum
创建nightID相关问题 更多 >
编程相关推荐