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

如何汇总测量数据的连续序列:保留首行并统计序列行数

测量数据序列汇总解决方案

需求说明

现有测量数据集包含Start scan(测量启动后时间,单位秒)和Sum.(总值)字段,已过滤高于阈值的数据。需按以下规则处理:

  • 连续的Start scan值属于同一序列,非连续则为不同序列
  • 每个序列仅保留首行数据
  • 新增scans summarised字段,记录对应序列的原始行数

代码实现(Python pandas)

import pandas as pd

# 加载输入数据(可替换为读取本地文件,如pd.read_csv/Excel)
data = pd.DataFrame({
    '': [38191, 38192, 38193, 38194, 38195, 38216, 38217, 38218, 38219, 38220, 38230, 38231, 38232, 38247, 38381, 38382, 38383, 38384, 38385, 38386, 38387, 38388, 38389, 38391, 38392],
    'Start scan': [247, 248, 249, 250, 251, 272, 273, 274, 275, 276, 286, 287, 288, 303, 437, 438, 439, 440, 441, 442, 443, 444, 445, 447, 448],
    'Sum.': [7.06487e+06, 8.64094e+06, 8.82956e+06, 1.20744e+07, 1.28402e+07, 1.85569e+07, 2.83452e+07, 2.6532e+07, 2.2365e+07, 9.0689e+06, 6.92365e+06, 1.0727e+07, 7.81559e+06, 8.14354e+06, 8.4836e+06, 1.56635e+07, 1.24743e+07, 1.84585e+07, 1.82205e+07, 1.79627e+07, 8.56578e+06, 2.28438e+07, 8.19495e+06, 1.39808e+07, 8.30781e+06]
})

# 1. 生成序列分组ID:当Start scan与前一行差值≠1时,标记为新序列
data['sequence_id'] = (data['Start scan'].diff() != 1).cumsum()

# 2. 统计每个序列的行数
sequence_counts = data.groupby('sequence_id').size().rename('scans summarised')

# 3. 合并结果,保留每个序列的首行数据
result = data.groupby('sequence_id').first().join(sequence_counts).reset_index(drop=True)

# 调整列顺序以匹配期望输出
result = result[['', 'Start scan', 'Sum.', 'scans summarised']]

# 输出格式化结果
print(result.to_markdown(index=False, numalign='right'))

关键逻辑说明

  • 序列分组:通过计算Start scan的前后差值,判断是否为新序列起点,用累积求和生成唯一序列ID
  • 行数统计:按序列ID分组后统计每组的行数
  • 结果合并:取每个序列的首行数据,再合并行数统计结果,最终调整列顺序匹配需求

执行结果

运行代码后将得到与期望一致的输出:

|       |   Start scan |        Sum. |   scans summarised |
|------:|-------------:|------------:|-------------------:|
| 38191 |          247 | 7.06487e+06 |                  5 |
| 38216 |          272 | 1.85569e+07 |                  5 |
| 38230 |          286 | 6.92365e+06 |                  3 |
| 38247 |          303 | 8.14354e+06 |                  1 |
| 38381 |          437 | 8.4836e+06  |                  9 |
| 38391 |          447 | 1.39808e+07 |                  2 |

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 12:25:31