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

如何为1分钟间隔时序数据表新增2分钟延迟的datetime和value列

实现方案

Python Pandas 实现

首先确保你的dateTime字段已经转换为datetime格式,且数据表按时间升序排序:

import pandas as pd

# 读取数据后先做格式转换和排序
df['dateTime'] = pd.to_datetime(df['dateTime'])
df = df.sort_values('dateTime').reset_index(drop=True)

# 方法1:采样间隔固定1分钟无缺失时,直接用偏移更高效
df['dateTime(2min)'] = df['dateTime'] + pd.Timedelta(minutes=2)
df['value(2min)'] = df['value'].shift(-2)

# 方法2:时间可能存在缺失的通用场景,用左关联保证匹配准确
df['join_key'] = df['dateTime'] + pd.Timedelta(minutes=2)
df = df.merge(
    df[['dateTime', 'value']].rename(columns={'dateTime':'join_key', 'value':'value(2min)'}),
    on='join_key',
    how='left'
).rename(columns={'join_key':'dateTime(2min)'})

两种方法输出的结果都和预期示例完全一致,末尾两行不存在对应2分钟后数据时,value(2min)会自动填充为空值。

SQL 实现

如果数据存储在关系型数据库中,用窗口函数LEAD即可实现,通用语法如下:

SELECT
    dateTime,
    value,
    DATE_ADD(dateTime, INTERVAL 2 MINUTE) AS `dateTime(2min)`,
    LEAD(value, 2) OVER (ORDER BY dateTime ASC) AS `value(2min)`
FROM 你的表名
ORDER BY dateTime ASC

不同数据库的时间增量函数略有差异:

  • PostgreSQL/SparkSQL:dateTime + INTERVAL '2 minutes'
  • Oracle:dateTime + 2/1440

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 13:06:08