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

如何用Pandas生成指定时间范围与间隔的时间序列数据集?

使用Pandas生成指定时间间隔的区间数据集

实现步骤

  • 导入pandas和datetime模块处理日期时间
  • 将输入的字符串日期转换为Pandas可识别的datetime对象
  • 生成按指定间隔排列的时间点序列
  • 拆分时间序列为起始/结束列,处理最后一个区间的特殊结束时间

完整代码

import pandas as pd
from datetime import timedelta

# 输入参数
min_date_str = "18 oct 2022"
max_date_str = "20 Oct 2022"
interval = "1H"  # Pandas频率标识,1H代表1小时

# 解析日期为datetime对象(dayfirst=True确保日/月/年格式解析正确)
min_date = pd.to_datetime(min_date_str, dayfirst=True)
max_date = pd.to_datetime(max_date_str, dayfirst=True)

# 生成时间序列:从min_date到max_date,间隔1小时
time_series = pd.date_range(start=min_date, end=max_date, freq=interval)

# 构造Min_date列:取时间序列所有元素,排除最后一个
min_dates = time_series[:-1]

# 构造Max_date列:默认取时间序列所有元素排除第一个,最后一个区间调整为max_date前1分钟
max_dates = time_series[1:]
max_dates = max_dates[:-1].append(pd.DatetimeIndex([max_date - timedelta(minutes=1)]))

# 创建DataFrame并格式化日期显示
df = pd.DataFrame({
    "Min_date": min_dates.dt.strftime("%d/%m/%Y %H:%M:%S"),
    "Max_date": max_dates.dt.strftime("%d/%m/%Y %H:%M:%S")
})

print(df)

代码说明

  • 日期解析:pd.to_datetime配合dayfirst=True,确保"18 oct 2022"被正确解析为2022年10月18日
  • 时间序列生成:pd.date_range的freq参数支持多种频率标识,比如"30T"代表30分钟、"1D"代表1天
  • 最后区间处理:按照示例要求,将最后一个区间的结束时间调整为max_date前一分钟,而非下一个整点
  • 日期格式化:通过dt.strftime将datetime对象转换为DD/MM/YYYY HH:MM:SS格式的字符串

输出截取示例

Min_date           Max_date
0  18/10/2022 00:00:00  18/10/2022 01:00:00
1  18/10/2022 01:00:00  18/10/2022 02:00:00
...
46 19/10/2022 22:00:00  19/10/2022 23:00:00
47 19/10/2022 23:00:00  19/10/2022 23:59:00

内容的提问来源于stack exchange,提问作者python_interest

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 22:30:29