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

Pandas DataFrame移除重复列且保留对应行值的技术问题

处理Pandas重复列名并合并行数值

核心方法

按列名分组,对同名列的行数据进行聚合合并,而非直接删除后续重复列。

场景1:同列名的行仅单个非空值(补全缺失)

如果重复列的同一行里只有一列有有效数值,其余为缺失值,用groupby按列名分组后取首个非空值即可完成补全:

df_merged = df.groupby(df.columns, axis=1).first()

这会将同列名的所有列合并,用后续列的非空值填补首个列的对应空行,保留全部有效数据。

场景2:同列名的行存在多个有效值(合并所有值)

如果需要把同一行的所有有效值合并,可自定义聚合逻辑:

  • 字符串拼接(逗号分隔非空值):
df_merged = df.groupby(df.columns, axis=1).agg(lambda x: ','.join(x.dropna().astype(str)))
  • 数值求和:
df_merged = df.groupby(df.columns, axis=1).sum()

原代码问题说明

你之前使用的df.loc[:,~df.columns.duplicated(keep='first')]仅筛选保留第一个出现的列,直接丢弃了后续重复列的所有数据,没有做数值合并,因此会丢失信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 00:05:15