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

如何在Pandas DataFrame中合并差值≤2的行并统计合并数?

使用Pandas实现连续差值≤2的行合并与计数

完整实现代码

import pandas as pd

# 构造原始DataFrame
df = pd.DataFrame({'B': [1, 2, 5, 6, 7, 10]})

# 生成分组标签:当当前行B与前一行B的差值>2时,分组编号+1
df['group'] = (df['B'].diff() > 2).cumsum()

# 按分组聚合,取每组最小的B值,统计每组行数
result = df.groupby('group').agg(B=('B', 'min'), count=('B', 'size')).reset_index(drop=True)

print(result)

代码解释

  • 构造原始数据:创建符合需求的DataFrame(若已有现成数据可跳过此步骤)。
  • 生成分组标签:用diff()计算当前行与前一行的差值,判断是否大于2,再通过cumsum()累加生成连续分组编号——差值大于2时分组号加1,自动将连续差值≤2的行归为同一组。
  • 分组聚合:按分组号分组,用agg()同时完成两个操作:提取每组最小的B值(满足"选择值较小的行"的要求)、统计组内行数(即合并计数),最后用reset_index(drop=True)重置索引,得到目标格式。

运行后输出结果:

B  count
0   1      2
1   5      3
2  10      1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 00:02:02