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

如何在Pandas中依据ID列重复值合并Design codes到同一单元格?

解决方案

假设你的DataFrame名为df,ID是分组列,Design codes是需要合并的列,第2至5列可根据实际列名替换(或通过索引动态获取)。直接通过groupby+agg一次性完成所有列的聚合,无需额外添加列:

import pandas as pd

# 方式1:指定具体列名
agg_rules = {
    'col2': 'first',  # 替换为你的第2列实际列名
    'col3': 'first',  # 替换为你的第3列实际列名
    'col4': 'first',  # 替换为你的第4列实际列名
    'col5': 'first',  # 替换为你的第5列实际列名
    'Design codes': lambda x: '\n'.join(x.astype(str))
}

result_df = df.groupby('ID', as_index=False).agg(agg_rules)

关键说明

  • 第2至5列因同一ID下值完全一致,用'first'(或'max'/'min')即可保留有效唯一值,不会丢失信息。
  • Design codes列通过'\n'.join()将同一ID下的所有值用换行符拼接,实现单元格内换行显示;若该列已是字符串类型,可去掉.astype(str)。
  • as_index=False确保分组后的ID列仍为普通列,而非索引。

如果不知道第2至5列的具体列名,可通过索引动态获取:

# 获取第2到5列的列名(索引从0开始,对应位置1-4)
cols_to_keep = df.columns[1:5].tolist()
# 动态构建聚合规则
agg_rules = {col: 'first' for col in cols_to_keep}
agg_rules['Design codes'] = lambda x: '\n'.join(x.astype(str))

result_df = df.groupby('ID', as_index=False).agg(agg_rules)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 17:34:55