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

使用Python Pandas合并Excel表格:填充空值合并失败求助

用第二个Excel文件填充第一个文件的空单元格

你的需求是以第一个Excel为基础,用第二个文件的非空值填充对应索引行的空单元格,核心是基于索引匹配后填充空值,而非拼接或合并行/列。

现有代码的问题

  • pd.concat是纵向拼接两个DataFrame的行,会把两个文件的行全部保留,出现重复索引的行(比如示例中的1a、1b),完全不符合填充需求。
  • 你尝试的pd.merge参数不全,且merge的作用是按列/索引合并数据,会生成重复列(比如B_x、B_y),并非用来填充空值的工具。

正确实现方法

使用pandas的combine_first方法,它的逻辑正好是:保留第一个DataFrame的所有非空值,用第二个DataFrame中对应索引和列的非空值填充第一个的空值,完美匹配你的需求。

完整代码:

import pandas as pd
import os

inputFolder = r'd:/testin'
outputFolder = r'd:/testout'

# 读取文件,指定首列为索引
file1 = pd.read_excel(os.path.join(inputFolder, 'input1.xlsx'), index_col=0)
file2 = pd.read_excel(os.path.join(inputFolder, 'input2.xlsx'), index_col=0)

# 用file2的非空值填充file1的空单元格
merged = file1.combine_first(file2)

# 保存结果,保留索引列
merged.to_excel(os.path.join(outputFolder, 'merged.xlsx'), index=True)

效果验证

运行后会得到你期望的结果:

  • 索引1的C列空值被file2的C1填充,D列保留file1的D1
  • 索引2的D列空值被file2的D2填充,B、C列保留file1的B2、C2
  • 所有原有非空值都不会被覆盖

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 16:05:16