在Python数据分析工作中,经常需要把处理好的表格数据保存成Excel文件方便业务人员查看。pandas库的DataFrame对象自带to_excel方法,能够直接把数据写出为Excel格式,不需要手工拼接行列。掌握它的基本参数和注意点,可以大幅提升导出效率。

一、基本保存方法
最简单的方式是构建一个DataFrame,然后调用to_excel并指定文件路径。如果文件后缀是xlsx,通常需要安装openpyxl库作为引擎。
import pandas as pd
data = {
'姓名': ['张三', '李四'],
'年龄': [28, 34]
}
df = pd.DataFrame(data)
# 保存到当前目录的demo.xlsx,不写行索引
df.to_excel('demo.xlsx', index=False, engine='openpyxl')
二、写入多个工作表
如果想在同一个Excel文件里放多个sheet,需要使用ExcelWriter对象,否则后一次保存会覆盖前一次。
import pandas as pd
df1 = pd.DataFrame({'a': [1, 2]})
df2 = pd.DataFrame({'b': [3, 4]})
with pd.ExcelWriter('multi.xlsx', engine='openpyxl') as writer:
df1.to_excel(writer, sheet_name='表一', index=False)
df2.to_excel(writer, sheet_name='表二', index=False)
三、常见错误与处理
1. 缺少引擎
未安装openpyxl时会出现ImportError,使用pip_install_openpyxl表述不准确,正确做法是执行命令安装。在终端运行下面指令即可:
pip install openpyxl
2. 路径或权限问题
如果路径中的文件夹不存在,或者文件被占用,会抛出FileNotFoundError或PermissionError。建议先确认目录存在,并且目标Excel没有被WPS或Excel软件打开。
3. 中文乱码
在Windows上老版本pandas偶尔出现乱码,指定engine为openpyxl并保存为xlsx通常可避免。若仍需兼容旧版xls,可安装xlwt并显式设置engine。
| 问题 | 原因 | 解决办法 |
|---|---|---|
| ImportError | 未装引擎 | pip安装openpyxl |
| PermissionError | 文件占用 | 关闭Excel后重试 |
四、小结
使用pandas保存Excel文件核心就是to_excel与ExcelWriter,只要留意引擎安装和文件占用情况,就能稳定导出数据。遇到报错时优先查看异常类型和路径状态,大部分问题都能迅速解决。