在Python中基于起始时间与录制时长生成10秒间隔时间序列
Python生成固定10秒增量的时间序列向量
方法一:使用标准库datetime
无需额外安装依赖,适合轻量场景:
from datetime import datetime, timedelta # 输入参数 t0_str = "2017-06-12T11:05:10.00" N = 1000 # 把字符串格式的起始时间转成datetime对象 t0 = datetime.strptime(t0_str, "%Y-%m-%dT%H:%M:%S.%f") # 计算序列总长度:总时长除以10秒间隔 num_points = N // 10 # 生成时间序列 ts = [t0 + timedelta(seconds=10*i) for i in range(num_points)] # 可选:转成和示例一致的字符串格式 ts_str = [dt.strftime("%Y-%m-%dT%H:%M:%S.%f")[:-4] for dt in ts] print(ts_str[:3]) # 输出前3个元素验证
运行后输出:
['2017-06-12T11:05:10.00', '2017-06-12T11:05:20.00', '2017-06-12T11:05:30.00']
方法二:使用pandas(简洁高效)
如果已经用pandas处理数据,这个方法更省心:
import pandas as pd # 输入参数 t0_str = "2017-06-12T11:05:10.00" N = 1000 # 直接生成时间序列 ts = pd.date_range(start=t0_str, periods=N//10, freq="10S") # 转成字符串格式(可选) ts_str = ts.strftime("%Y-%m-%dT%H:%M:%S.%f").str[:-4].tolist() print(ts_str[:3])
这段代码会得到和上面完全一致的结果,freq="10S"指定10秒间隔,periods控制生成的元素数量。
内容的提问来源于stack exchange,提问作者Sowmya
相关产品推荐
相关产品推荐

