You need to enable JavaScript to run this app. 如何在Pandas中合并含NaN值的重复Name列对应行?
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中合并含NaN值的重复Name列对应行?

按Name列合并重复行的实现方案

完全可以实现你描述的合并逻辑,核心思路是按重复的Name列分组后,逐列提取组内的非空有效值拼接为单行,不需要额外调整行的原始顺序。

核心实现代码

# 高效实现:pandas内置的first()方法自动跳过NaN,取组内首个非空值
merged_df = df.groupby(
    'Name', 
    as_index=False,  # 避免Name列被设置为DataFrame的索引
    sort=False       # 保留原数据中Name的首次出现顺序,不需要可删除该参数
).first()

效果验证

针对你给出的原始DataFrame:

NameCityBirthday
JacqueNaN1
Paul42
Jacque10NaN

执行上述代码后得到的合并结果完全匹配预期:

NameCityBirthday
Jacque101
Paul42

注意事项

  • 上述逻辑默认同组同列不存在多个互相冲突的非空值,取组内第一个非空值即可满足需求;如果同列存在多个非空值需要自定义合并规则(比如拼接文本、取数值最大值),可以将内置的first()替换为自定义聚合函数
  • 如果不需要保留原数据中Name的出现顺序,删除sort=False参数即可,pandas会自动将Name列按字典序排序
  • 若分组下某列全为NaN,合并后该位置会自动保留NaN,和pandas默认行为一致

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.24 22:36:11