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

Pandas相同ID多行分散列空值合并,有无更优的内置实现方案?

解决方案

你需要的Pandas内置方法就是groupby分组聚合操作,一行代码即可实现需求,完全规避你之前方案的痛点:

new_df = df.groupby('ID', as_index=False).first()

方案说明

  • 该方法以ID字段为键对所有行分组,first()聚合函数会自动提取每个分组下各列的第一个非空值,恰好匹配你将同ID的分散有效值合并为一行的需求
  • 如果某个ID对应的某列确实全为NaN,聚合结果会自动保留NaN,不会出现你担心的列长度不一致、对齐错误的问题
  • 这是Pandas原生支持的标准操作,底层做了大量性能优化,数据量越大相比手动循环的方案性能优势越明显
  • 如果业务中同ID同列可能存在多个非空值,只需要把first()替换为对应需求的聚合函数即可:比如要取最后一个有效值用last(),要对数值求和用sum(),要保留所有有效值用list等。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 21:36:03