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

Pandas实现DataFrame分组后除最后一行外其余行追加逗号

Pandas分组追加逗号最优实现方案

核心思路

用pandas原生向量化操作实现,避免逐行循环,性能最优,逻辑完全匹配需求:

  1. 按label字段分组后,对组内行做倒序计数,分组最后一行的计数值固定为0
  2. 筛选出所有计数值不等于0的行(即组内非最后一行),给这些行的attribuutLabel字段末尾追加逗号
  3. 单条数据的分组内唯一行计数值为0,不会被追加逗号,自动满足单行不处理的要求

完整实现代码

import pandas as pd

# 加载原始数据
data = [['object 1', 'property 1'], ['object 1','property 11'],['object 1','property 111'], ['object 2', 'property 2'], ['object 3', 'property 3'],['object 3','property 33']]    
df = pd.DataFrame(data, columns=['label', 'attribuutLabel'])

# 核心处理逻辑
not_last_row_mask = df.groupby('label').cumcount(ascending=False) != 0
df.loc[not_last_row_mask, 'attribuutLabel'] += ','

运行输出结果

执行代码后得到的DataFrame完全匹配预期:

labelattribuutLabel
object 1property 1,
object 1property 11,
object 1property 111
object 2property 2
object 3property 3,
object 3property 33

方案优势

  • 全程使用pandas内置向量化方法,没有自定义循环,万级以上数据量下运行速度比apply/逐行遍历快数十倍
  • 逻辑简洁,没有冗余判断,单行分组的场景天然被覆盖,不需要额外写分支判断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 11:21:20