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

如何合并两个DataFrame并替换NaN值,优先保留参考表非空值

双表合并空值替换方案

需求描述

现有两张列结构完全一致的表格,需按以下规则完成合并:

  • 替换两张表中标记为N/A的空值
  • 第一张表为优先参考表,若两张表同一位置均为非N/A的不同值,优先保留第一张表的取值
  • 最终输出单行结果,要求DistanciaPercorrida字段值为3km,TempoCorrida字段值为4min 38s

实现方案

步骤1:统一空值格式

先将两张表中自定义的N/A空值标记,转换为Pandas可识别的标准NaN空值,执行代码:
df.replace('N/A', np.NaN)

步骤2:按优先级合并表格

使用Pandas的combine_first方法实现优先级合并,该方法会自动用第二张表的非空值填充第一张表的空值,且第一张表已有值的位置不会被第二张表覆盖,完全符合需求的优先级规则,执行代码:
df1.set_index('Data').combine_first(df2.set_index('Data')).reset_index()

完整参考代码

import pandas as pd
import numpy as np

# df1、df2为已读取的两张待合并表
# 统一两张表的空值格式
df1 = df1.replace('N/A', np.NaN)
df2 = df2.replace('N/A', np.NaN)

# 按公共列Data建立索引后合并,合并完成后重置索引
merged_df = df1.set_index('Data').combine_first(df2.set_index('Data')).reset_index()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 00:06:04