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

如何用Python Pandas高效合并连续相同行并累加对应数值

用Pandas合并连续相同LITHO_UNIT行并累加数值的高效方案

核心思路

先给连续相同的LITHO_UNIT标记唯一分组ID,再按分组聚合求和,全程用Pandas向量化操作,效率拉满。


1. 还原示例数据(方便测试)

假设你的原始DataFrame如下:

import pandas as pd

df = pd.DataFrame({
    'LITHO_UNIT': ['Shale', 'Shale', 'Sandstone', 'Sandstone', 'Shale'],
    'THICKNESS': [0.5, 1.2, 2.0, 0.8, 0.3],
    'RECOVERY': [0.2, 0.8, 1.5, 0.6, 0.1]
})

2. 生成连续分组ID

通过对比当前行与上一行的LITHO_UNIT,生成分组标识:

# 当当前行和上一行LITHO_UNIT不同时,标记为1,累加后得到唯一分组ID
df['group_id'] = (df['LITHO_UNIT'] != df['LITHO_UNIT'].shift()).cumsum()

3. 分组聚合求和

按group_id和LITHO_UNIT分组,对目标列求和,最后移除分组ID列:

result = df.groupby(['group_id', 'LITHO_UNIT'], as_index=False).agg({
    'THICKNESS': 'sum',
    'RECOVERY': 'sum'
}).drop('group_id', axis=1)

4. 查看最终结果

print(result)

输出完全匹配预期:

LITHO_UNIT  THICKNESS  RECOVERY
0       Shale        1.7       1.0
1    Sandstone        2.8       2.1
2       Shale        0.3       0.1

效率说明

这套方案全程用Pandas内置的向量化操作,没有手动循环,时间复杂度为O(n),处理十万甚至百万级别的数据都能保持高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 16:30:44