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

如何对含缺失段的规则时间间隔序列中的连续值分组?

按时间间隙拆分连续序列并分组分析

针对你提出的需求——在规则时间间隔的序列中识别缺失段,将连续记录拆分为独立组并进行对比分析,我整理了一套基于Pandas的可行解决方案:

核心思路

  1. 计算相邻时间索引的间隔,判断是否超出预期的规则间隔(比如你的示例中是6秒)
  2. 根据间隔异常的位置,为每个连续的记录块分配唯一的分组ID
  3. 利用groupby对每个分组进行单独分析,完美支持多缺失段的场景

完整实现代码

import pandas as pd

# 你的示例数据
data_index = pd.DatetimeIndex([
    '2018-01-01 00:00:00', 
    '2018-01-01 00:00:06',
    '2018-01-01 00:00:12',
    '2018-01-01 00:00:18', 
    '2018-01-01 00:00:24', 
    '2018-01-01 00:00:54', 
    '2018-01-01 00:01:00'
])
data = [4.2, 4.1,4.3,3.4, 4.7, 3.3, 8.2]

# 构建DataFrame
df = pd.DataFrame({'data': data}, index=data_index)

# 设定规则时间间隔(6秒)
expected_interval = pd.Timedelta(seconds=6)

# 计算相邻索引的时间差
time_diff = df.index.to_series().diff()

# 标记超出间隔的位置,并生成分组ID
df['group_id'] = (time_diff > expected_interval).cumsum()

# 按分组ID进行分析,这里以计算每组的基本统计量为例
grouped_analysis = df.groupby('group_id').agg(
    count=('data', 'count'),
    mean=('data', 'mean'),
    min=('data', 'min'),
    max=('data', 'max')
)

# 查看拆分后的分组数据
print("拆分后的分组详情:")
print(df)
print("\n分组统计分析结果:")
print(grouped_analysis)

关键代码说明

  • time_diff = df.index.to_series().diff():计算每条记录与前一条的时间间隔,为后续判断缺失段做准备
  • (time_diff > expected_interval).cumsum():当时间间隔超过预期值时,累加生成新的分组ID,确保连续的记录会被分到同一组
  • groupby('group_id').agg(...):对每个分组执行自定义的分析操作,你可以根据需求替换为自己的逻辑(比如绘制趋势图、计算波动率等)

输出示例

拆分后的分组详情会清晰显示每条记录所属的组(示例中0对应第一组、1对应第二组),分组统计结果会给出每组的数量、均值、极值等核心指标,方便你快速完成组间对比分析。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:29:02