gpt4 book ai didi

python - 为时间戳创建组标识符

转载 作者:行者123 更新时间:2023-12-01 09:19:15 25 4
gpt4 key购买 nike

以下是我得到的数据

  timediff
2018-06-19 01:00:00
2018-06-19 01:00:01
2018-06-19 01:00:02
2018-06-19 01:00:03
2018-06-19 02:00:00
2018-06-19 02:00:01
2018-06-19 02:00:02
2018-06-19 02:00:03
2018-06-19 02:15:00
2018-06-19 02:15:01
2018-06-19 02:15:02
2018-06-19 02:15:03
2018-06-19 02:30:00
2018-06-19 02:30:01
2018-06-19 02:30:02
2018-06-19 02:30:03

我想为数据中的每个时间组创建一个组标识符。如果数据在 4-5 秒内,我想为每个组创建一个标识符。

输出应该是这样的,

timediff                identifier
2018-06-19 01:00:00 1
2018-06-19 01:00:01 1
2018-06-19 01:00:02 1
2018-06-19 01:00:03 1
2018-06-19 02:00:00 2
2018-06-19 02:00:01 2
2018-06-19 02:00:02 2
2018-06-19 02:00:03 2
2018-06-19 02:15:00 3
2018-06-19 02:15:01 3
2018-06-19 02:15:02 3
2018-06-19 02:15:03 3
2018-06-19 02:30:00 4
2018-06-19 02:30:01 4
2018-06-19 02:30:02 4
2018-06-19 02:30:03 4

由于时间间隔内的每个条目都在 4-5 秒内,因此我想将其保留在一组中。同样,我想识别所有组。

我是Python新手,不知道如何做到这一点。

有人可以帮我做吗?

最佳答案

我曾经以五分钟的间隔对时间戳进行分组。如果时间在一组则会生成相同的group_key:

group_key = int( timestamps / interval ) * interval

group_key表示时间在跨区域[group_key,group_key+interval)

例如:

interval is 5 seconds
group_key | timestame| time
1529341200 1529341200 '2018-06-19 01:00:00'
1529341200 1529341201 '2018-06-19 01:00:01'
1529341200 1529341202 '2018-06-19 01:00:02'
1529341200 1529341203 '2018-06-19 01:00:03'
1529341200 1529341204 '2018-06-19 01:00:04'

1529341205 1529341205 '2018-06-19 01:00:05'
1529341205 1529341206 '2018-06-19 01:00:06'
1529341205 1529341207 '2018-06-19 01:00:07'
1529341205 1529341208 '2018-06-19 01:00:08'
1529341205 1529341209 '2018-06-19 01:00:09'

1529341210 1529341210 '2018-06-19 01:00:10'
1529341210 1529341211 '2018-06-19 01:00:11'
1529341210 1529341212 '2018-06-19 01:00:12'
1529341210 1529341213 '2018-06-19 01:00:13'
1529341210 1529341214 '2018-06-19 01:00:14'

对于您的问题:

import time
datetimes=['2018-06-19 01:00:00','2018-06-19 01:00:01','2018-06-19 01:00:02','2018-06-19 01:00:03','2018-06-19 02:00:00','2018-06-19 02:00:01','2018-06-19 02:00:02','2018-06-19 02:00:03','2018-06-19 02:15:00','2018-06-19 02:15:01','2018-06-19 02:15:02','2018-06-19 02:15:03','2018-06-19 02:30:00','2018-06-19 02:30:01','2018-06-19 02:30:02','2018-06-19 02:30:03']

time_interval = 5
group = {}

print "timediff identifier"
for dt in datetimes:
timestamp = int(time.mktime(time.strptime(dt, '%Y-%m-%d %H:%M:%S')))
identifier = int(timestamp/time_interval)*time_interval
print "'"+dt+"'", identifier

但是标识符不是1,2,3,4而是组的开始时间戳,我认为它更有意义。如果你必须使用1,2,3,4你需要进行进一步的改造。

输出:

timediff               identifier
'2018-06-19 01:00:00' 1529341200
'2018-06-19 01:00:01' 1529341200
'2018-06-19 01:00:02' 1529341200
'2018-06-19 01:00:03' 1529341200
'2018-06-19 02:00:00' 1529344800
'2018-06-19 02:00:01' 1529344800
'2018-06-19 02:00:02' 1529344800
'2018-06-19 02:00:03' 1529344800
'2018-06-19 02:15:00' 1529345700
'2018-06-19 02:15:01' 1529345700
'2018-06-19 02:15:02' 1529345700
'2018-06-19 02:15:03' 1529345700
'2018-06-19 02:30:00' 1529346600
'2018-06-19 02:30:01' 1529346600
'2018-06-19 02:30:02' 1529346600
'2018-06-19 02:30:03' 1529346600

关于python - 为时间戳创建组标识符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50937878/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com