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

Python 实现DataFrame相同首列值连续行其余列数值相加合并

实现方法

你可以通过pandas的分组聚合逻辑完成需求,核心思路是先为连续值相同的position行生成统一分组标签,再按组对数值列求和即可,代码如下:

import pandas as pd

# 构造示例DataFrame,实际使用时替换为你自己的数据即可
df = pd.DataFrame({
    'position': [1, 1, 2, 2],
    'length': [5.5, 0.0, 4.1, 0.0],
    'height': [0.0, 2.1, 0.0, 3.5]
})

# 生成连续相同position的分组标签
continuous_group = (df['position'] != df['position'].shift()).cumsum()

# 按分组聚合,得到最终结果
result = df.groupby(continuous_group).agg(
    position=('position', 'first'),
    length=('length', 'sum'),
    height=('height', 'sum')
).reset_index(drop=True)

print(result)

运行后输出的result就是你期望的合并结果:

positionlengthheight
15.52.1
24.13.5

逻辑说明

df['position'] != df['position'].shift()会比对当前行与上一行的position值是否不同,返回布尔序列,用cumsum()累加后,所有连续相同position的行都会被分配到同一个分组,完全匹配你「仅连续相同值才合并」的要求,如果出现非连续的相同position(比如行顺序为1,1,2,1),不会被误合并。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 04:27:04