You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中从时间戳列生成5分钟间隔的起止时间列?

Pandas生成5分钟时间间隔的起始/结束列

原始数据集

data = {'col_ts': ['2022-11-02T08:26:40', '2022-11-02T08:25:10', '2022-11-02T08:26:00', '2022-11-02T08:30:20',
                  '2022-11-02T08:33:30', '2022-11-02T08:36:40', '2022-11-02T08:26:20', '2022-11-02T08:50:10',
                  '2022-11-02T08:30:40', '2022-11-02T08:39:40']} 
df = pd.DataFrame(data, columns = ['col_ts'])

需求说明

需要为每条数据生成对应5分钟时间间隔的起始时间(START_INTERVAL)和结束时间(END_INTERVAL),效果等价于SQL中的time_slice(col_ts, 5, 'MINUTE', 'START')和time_slice(col_ts, 5, 'MINUTE', 'END')。Pandas的resample方法仅能生成聚合后的行级间隔,无法为每条原始数据匹配对应间隔,可通过以下方案实现。

解决方案

步骤1:转换时间列为datetime类型

原始col_ts是字符串格式,需先转为Pandas的datetime类型才能进行时间运算:

df['col_ts'] = pd.to_datetime(df['col_ts'])

步骤2:生成起始时间列(START_INTERVAL)

使用dt.floor('5T')将时间向下取整到最近的5分钟间隔起点,和SQLtime_slice的START逻辑一致:

df['START_INTERVAL'] = df['col_ts'].dt.floor('5T')

步骤3:生成结束时间列(END_INTERVAL)

结束时间为起始时间加上5分钟,直接用pd.Timedelta实现:

df['END_INTERVAL'] = df['START_INTERVAL'] + pd.Timedelta(minutes=5)

完整代码

import pandas as pd

data = {'col_ts': ['2022-11-02T08:26:40', '2022-11-02T08:25:10', '2022-11-02T08:26:00', '2022-11-02T08:30:20',
                  '2022-11-02T08:33:30', '2022-11-02T08:36:40', '2022-11-02T08:26:20', '2022-11-02T08:50:10',
                  '2022-11-02T08:30:40', '2022-11-02T08:39:40']} 
df = pd.DataFrame(data, columns = ['col_ts'])

# 转换时间类型
df['col_ts'] = pd.to_datetime(df['col_ts'])
# 生成起始间隔
df['START_INTERVAL'] = df['col_ts'].dt.floor('5T')
# 生成结束间隔
df['END_INTERVAL'] = df['START_INTERVAL'] + pd.Timedelta(minutes=5)

print(df)

输出结果

col_ts      START_INTERVAL        END_INTERVAL
0 2022-11-02 08:26:40 2022-11-02 08:25:00 2022-11-02 08:30:00
1 2022-11-02 08:25:10 2022-11-02 08:25:00 2022-11-02 08:30:00
2 2022-11-02 08:26:00 2022-11-02 08:25:00 2022-11-02 08:30:00
3 2022-11-02 08:30:20 2022-11-02 08:30:00 2022-11-02 08:35:00
4 2022-11-02 08:33:30 2022-11-02 08:30:00 2022-11-02 08:35:00
5 2022-11-02 08:36:40 2022-11-02 08:35:00 2022-11-02 08:40:00
6 2022-11-02 08:26:20 2022-11-02 08:25:00 2022-11-02 08:30:00
7 2022-11-02 08:50:10 2022-11-02 08:50:00 2022-11-02 08:55:00
8 2022-11-02 08:30:40 2022-11-02 08:30:00 2022-11-02 08:35:00
9 2022-11-02 08:39:40 2022-11-02 08:35:00 2022-11-02 08:40:00

内容的提问来源于stack exchange,提问作者CK-P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 16:10:42