pandas读取excel后如何添加数据
打工人 Excel 插件是一款专为Office和WPS设计,支持数据提取、证件识别等功能。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。
学习如何用 pandas 读取 Excel 并追加新数据。通过 pd.concat() 安全合并 DataFrame,检查列名与类型,最后使用 to_excel() 保存结果,避免直接修改原始文件。
在数据处理工作中,经常需要在已有的 Excel 表格末尾追加新的业务记录。直接使用 Excel 手动复制粘贴容易出错且难以自动化,而使用 Python 的 pandas 库可以高效、准确地完成这一任务。核心思路是先将原有数据和新增数据分别加载为 DataFrame,合并后再统一写入新的 Excel 文件。这种做法不仅保留了原始文件作为备份,还能在写入前对数据进行清洗和校验。

读取 Excel 文件并检查列名,确保后续数据对齐
要实现这一流程,最低准备条件是安装 pandas 和 openpyxl 库。openpyxl 是 pandas 读写 .xlsx 格式文件的依赖引擎。如果环境中尚未安装,可在终端执行 pip install pandas openpyxl。假设我们有一个名为 sales.xlsx 的文件,其中包含“姓名”、“部门”和“金额”三列数据。
1. 读取原始 Excel 数据
首先导入 pandas 并读取文件。使用 pd.read_excel() 时,建议指定 sheet_name=0 以读取第一个工作表。读取后,立即打印列名和前几行数据,这是防止后续错列的关键步骤。
import pandas as pd
# 读取 Excel 文件
old_data = pd.read_excel("sales.xlsx", sheet_name=0)
# 检查列名和数据预览
print(old_data.columns.tolist())
print(old_data.head())
Excel 中的列名有时包含不可见的空格或特殊字符,导致与代码中的字符串不匹配。通过 print(old_data.columns.tolist()) 确认确切的列名拼写,确保后续构造新数据时能一一对应。

1. 读取原始 Excel 数据
2. 构造新增数据的 DataFrame
将需要添加的新记录整理为字典列表,并转换为 DataFrame。为了保证合并时列顺序一致,使用原表的列名对新数据进行重排。
# 定义新增记录
new_records = [
{"姓名": "李明", "部门": "销售部", "金额": 1280},
{"姓名": "周宁", "部门": "市场部", "金额": 860}
]
# 创建 DataFrame
new_data = pd.DataFrame(new_records)
# 按照原表列顺序排列,防止列错位
new_data = new_data[old_data.columns]
如果新增数据中缺少某些列,pandas 会自动填充 NaN;如果列名完全不一致,则会报错。因此,确保 new_data 的列名与 old_data 完全一致是必要的前置检查。

构造新增数据并调整列顺序以匹配原表
3. 使用 concat 合并数据
使用 pd.concat() 函数将两个 DataFrame 沿行方向(axis=0)拼接。设置 ignore_index=True 可以重新生成从 0 开始的连续索引,避免保留原有的碎片化索引。
# 合并数据
all_data = pd.concat(
[old_data, new_data],
axis=0,
ignore_index=True
)
# 验证合并结果
print("原数据行数:", len(old_data))
print("合并后行数:", len(all_data))
print(all_data.tail())
这里必须注意 axis 参数。axis=0 表示上下追加行,符合“添加数据到表尾”的需求;若误用 axis=1,数据会左右拼接,导致结构错误。合并后检查行数和尾部数据,确认新记录已正确附加。

3. 使用 concat 合并数据
4. 检查数据类型并保存
在保存之前,检查关键数值列的数据类型。如果新增数据中混入了非数字字符,pandas 可能将该列推断为对象类型(object),影响后续计算。
# 检查数据类型
print(all_data.dtypes)
确认无误后,使用 to_excel() 将结果保存为新文件。建议不要直接覆盖原文件,而是生成如 sales_updated.xlsx 的新文件,以便保留原始数据备份。
# 保存为新 Excel 文件
all_data.to_excel(
"sales_updated.xlsx",
index=False, # 不保存行索引
sheet_name="销售记录",
engine='openpyxl'
)

保存为新文件以避免覆盖原始数据
index=False 参数非常重要,它能防止 pandas 将自动生成的行索引作为额外的一列写入 Excel。保存完成后,可以再次读取新文件进行最终验证,确保文件大小、行数和列内容均符合预期。若需处理多工作表或保留复杂格式,需使用更高级的 ExcelWriter 配置,但对于单纯的数据追加,上述方法最为稳健高效。
IntelliJ IDEA 是 JetBrains 推出的专业集成开发环境,重点服务于 Java、Kotlin 与 JVM 项目开发。软件集成代码补全、静态检查、重构、调试、测试、版本控制及构建工具,并可借助插件扩展语言和框架支持。
JetBrains PyCharm 是面向 Python 开发者的集成开发环境,提供智能补全、代码检查、重构、调试、测试、版本控制及虚拟环境管理功能。Mac 版兼容 Intel 与 Apple 芯片,核心功能可免费使用。
JetBrains WebStorm 是面向 JavaScript、TypeScript 和现代 Web 技术的专业集成开发环境,可智能理解项目结构,提供代码补全、重构、错误检查、运行调试、测试及 Git 工具。
JetBrains IntelliJ IDEA 是以 Java、Kotlin 和 JVM 项目为核心的专业集成开发环境,提供智能补全、代码检查、安全重构、调试、测试、版本控制及构建工具集成。统一发行版的核心功能可免费用于商业和非商业项目,
PhpStorm 是 JetBrains 面向 PHP 与现代 Web 开发打造的专业集成开发环境,提供代码补全、静态检查、重构、调试、测试、数据库、版本控制及前端语言支持。Windows 用户可直接下载安装程序,
PyCharm 是 JetBrains 推出的 Python 集成开发环境,提供智能代码补全、错误检查、重构、调试、测试、Git、终端及 Jupyter Notebook 支持。统一版安装后可体验 30 天 Pro 功能,










