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

Python pandas按Project ID合并重复行 唯一值用逗号拼接

pandas按Project ID去重拼接同列唯一值实现方案

实现代码

直接在你原有读取代码的基础上追加分组聚合逻辑即可,完整代码如下:

import pandas as pd

# 原有读取CSV代码保持不变
df = pd.read_csv('Project.csv', low_memory=False)

# 按Project ID分组,所有列去重后用逗号拼接
df_processed = df.groupby('Project ID', as_index=False).agg(
    lambda single_col: ','.join(single_col.dropna().astype(str).unique())
)

逻辑说明

  • 分组逻辑:以Project ID为分组键,所有同ID的行会被归为同一组处理,as_index=False保证处理后Project ID仍是普通列,不会被设为索引
  • 列处理逻辑:逐列对每组数据做处理
    • dropna():先剔除空值,避免拼接出无效的空字符串
    • astype(str):统一将列值转为字符串格式,兼容数字、日期等非字符串类型的列,防止拼接报错
    • unique():提取当前列在同组内的唯一值,自动过滤重复内容,符合你要求的仅拼接唯一值的规则
    • ','.join():将去重后的值用半角逗号拼接为单个字符串

效果校验

可以运行以下代码确认重复项已经被完全处理:

# 统计处理前后的重复Project ID数量
print(f"处理前重复Project ID行数:{df.duplicated('Project ID').sum()}")
print(f"处理后重复Project ID行数:{df_processed.duplicated('Project ID').sum()}")

正常情况下处理后重复Project ID行数输出为0,即所有Project ID唯一。由于你提到同ID行的Name字段本身重复,拼接后Name列不会出现重复内容;如果存在同ID对应不同Name的异常数据,代码也会自动将不同的Name值拼接保留,不会丢数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 18:12:58