Python获取数据,根据连续的时间点,识别出时间段

通过python获取数据,默认的间隔一般为5m,如果两个时间点数据在10m内,那就认为是在同一个时间段
示例数据

2022-03-01 00:00:00 20
2022-03-01 00:05:00 20
2022-03-01 00:10:00 20
2022-03-01 00:15:00 20
2022-03-01 00:25:00 20
2022-03-01 00:26:00 20
2022-03-01 00:27:00 20
2022-03-01 00:35:00 20
2022-03-01 00:40:00 20
2022-03-01 00:42:00 20
2022-03-01 00:55:00 20
2022-03-01 01:00:00 20
2022-03-01 01:06:00 20

我想得到的是

时间段1:开始时间:2022-03-01 00:00:00 结束时间:2022-03-01 00:15:00
时间段2:开始时间:2022-03-01 00:25:00 结束时间:2022-03-01 00:42:00
时间段3:开始时间:2022-03-01 00:55:00 结束时间:2022-03-01 01:06:00

感觉应该有现成的函数或者模块可以处理,搜索引擎没找到想要的东西

如果原数据是字符串
只想到遍历,用datetime 转换成时间,计算输出

import datetime
data = '''2022-03-01 00:00:00 20
2022-03-01 00:05:00 20
2022-03-01 00:10:00 20
2022-03-01 00:15:00 20
2022-03-01 00:25:00 20
2022-03-01 00:26:00 20
2022-03-01 00:27:00 20
2022-03-01 00:35:00 20
2022-03-01 00:40:00 20
2022-03-01 00:42:00 20
2022-03-01 00:55:00 20
2022-03-01 01:00:00 20
2022-03-01 01:06:00 20'''

data_list = data.split("\n")

st = ""
en = ""
t1 = 0
cnt = 1
for d in data_list:
    if st == "":
        # print("初始化")
        st = d
        t1 = datetime.datetime.strptime(d[:19], '%Y-%m-%d %H:%M:%S')
        continue
    t2 = datetime.datetime.strptime(d[:19], '%Y-%m-%d %H:%M:%S')
    # print(d ,'\t',(t2 - t1).total_seconds())
    if (t2 - t1).total_seconds() <600:
        t1 = t2
        en = d
    else:
        print("时间段{},开始{},结束{}".format(cnt,st,en))
        st = d
        t1 = t2
        cnt = cnt + 1
        en = ""

if en !="":
    print("时间段{},开始{},结束{}".format(cnt, st, en))


您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632