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

如何获取时间序列DataFrame中超过1分钟缺失的时间戳起止区间?

提取时间序列中缺失时长超1分钟的区间

操作步骤:

  1. 转换时间列格式:先将字符串类型的datetime列转为pandas的datetime类型,否则无法计算时间差。
import pandas as pd

# 示例数据
dic = {
    'datetime' : ['23.3.2021 23:18:00', '23.3.2021 23:19:00', '23.3.2021 23:20:00', '23.3.2021 23:25:00', '23.3.2021 23:26:00', '23.3.2021 23:27:00'],
    'col1':[31.45,38.361,37.0,31.49,32.891, 41],
    'col2':[38.776,38.444,38.945,38.647,39.667,40.0],
}
df = pd.DataFrame(dic)

# 转换为datetime类型,format参数需匹配原始字符串格式
df['datetime'] = pd.to_datetime(df['datetime'], format='%d.%m.%Y %H:%M:%S')
  1. 计算时间差并筛选异常值:计算相邻时间的差值,筛选出时长超过1分钟的记录。
# 计算相邻时间差,转换为分钟单位
df['time_diff'] = df['datetime'].diff().dt.total_seconds() / 60

# 筛选出时间差大于1分钟的行索引
gap_indices = df[df['time_diff'] > 1].index
  1. 提取缺失区间:根据筛选出的索引,提取对应缺失区间的开始(前一条记录的时间)和结束(当前记录的时间)。
missing_intervals = []
for idx in gap_indices:
    start_time = df.loc[idx-1, 'datetime']
    end_time = df.loc[idx, 'datetime']
    missing_duration = df.loc[idx, 'time_diff']
    missing_intervals.append({
        '缺失区间开始': start_time,
        '缺失区间结束': end_time,
        '缺失时长(分钟)': missing_duration
    })

# 转为DataFrame查看结果
missing_df = pd.DataFrame(missing_intervals)
print(missing_df)

示例输出:

缺失区间开始           缺失区间结束  缺失时长(分钟)
0 2021-03-23 23:20:00 2021-03-23 23:25:00        5.0

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:01:12