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

pandas入门:指定列值匹配时合并相邻两行的实现及多条件处理咨询

实现方案

你完全不需要自己手写逐行遍历逻辑,用pandas内置的分组聚合方法就能高效搞定,即使大数据量也不会卡:

import pandas as pd

# 读取本地csv文件
df = pd.read_csv("你的文件路径.csv")

# 生成连续同值分组标签
# 如果需要同时校验多列合并条件,把下方[['Rm']]替换成你要校验的所有列即可,比如[['Rm', 'Rx', 'Ry']]
df['group_id'] = (df[['Rm']] != df[['Rm']].shift()).any(axis=1).cumsum()

# 按分组聚合,聚合规则可根据你的实际需求调整
res = df.groupby('group_id', as_index=False).agg(
    Name = ('Name', ','.join), # 名称列用逗号拼接
    R0 = ('R0', 'last'), # 你示例中合并后R0取第二行的5,所以用last,要求和就改成'sum'
    Rm = ('Rm', 'first'), # 同一组Rm值相同,取第一行即可
    R1 = ('R1', 'first') # 你示例中合并后R1取第一行的3,所以用first
).drop(columns='group_id')

上面的代码直接就能跑出你给出的示例结果。

合并条件校验方式选择

建议直接一次遍历校验所有列的合并条件,不要分开多次遍历:

  • 上述的分组逻辑本身只需要O(n)的时间复杂度就能完成,不管你有多少个要校验的列,都只需要跑一次,性能开销很低。
  • 如果分开多次遍历、每次单独处理一个列的合并规则,不仅会多几倍的计算开销,还要反复处理合并后的行对齐、分组失效的问题,非常容易出逻辑bug,数据量越大性能差距越明显。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 06:18:04