【Pandas】pandas DataFrame to_excel

Pandas2.2 DataFrame

Serialization IO conversion

方法描述
DataFrame.from_dict(data[, orient, dtype, …])用于从 字典(dict) 构建 DataFrame 的类方法
DataFrame.from_records(data[, index, …])用于将 结构化数据(如列表的元组、NumPy 结构化数组)转换为 DataFrame
DataFrame.to_orc([path, engine, index, …])用于将 DataFrame 保存为 ORC(Optimized Row Columnar)格式的文件
DataFrame.to_parquet([path, engine, …])用于将 DataFrame 写入 Parquet 文件格式的方法
DataFrame.to_pickle(path, *[, compression, …])用于将 DataFrame 对象序列化并保存为 pickle 文件的方法
DataFrame.to_csv([path_or_buf, sep, na_rep, …])用于将 DataFrame 写入 CSV(逗号分隔值)文件的方法
DataFrame.to_hdf(path_or_buf, *, key[, …])用于将 DataFrame 写入 HDF5 文件的方法
DataFrame.to_sql(name, con, *[, schema, …])用于将 DataFrame 写入 SQL 数据库的方法
DataFrame.to_dict([orient, into, index])用于将 DataFrame 转换为 Python 字典
DataFrame.to_excel(excel_writer, *[, …])用于将 DataFrame 写入 Excel 文件的方法

pandas.DataFrame.to_excel()

pandas.DataFrame.to_excel() 是 Pandas 提供的用于将 DataFrame 写入 Excel 文件的方法。它支持多种参数来控制输出格式、位置、缺失值表示等,适用于生成结构化报表或数据导出。


📌 方法签名
DataFrame.to_excel(
    excel_writer,
    *,
    sheet_name='Sheet1',
    na_rep='',
    float_format=None,
    columns=None,
    header=True,
    index=True,
    index_label=None,
    startrow=0,
    startcol=0,
    engine=None,
    merge_cells=True,
    inf_rep='inf',
    freeze_panes=None,
    storage_options=None,
    engine_kwargs=None
)

🔍 参数说明
参数名类型描述
excel_writerstr 或 ExcelWriter 对象输出文件路径或已打开的 ExcelWriter 对象(可写多个 sheet)
sheet_namestr,默认 'Sheet1'Excel 表单名称(不能超过 31 字符,不能包含非法字符)
na_repstr,默认 ''缺失值(NaN)的表示方式
float_formatcallable 或 str,可选控制浮点数输出格式,如 "{:.2f}".format
columnslist-like,可选选择写入的列,按指定顺序排列
headerbool 或 list, 默认 True是否写入列名;若为 list,则作为自定义列名
indexbool,默认 True是否写入行索引
index_labelstr 或 sequence,可选自定义索引列的标签
startrowint,默认 0数据起始写入的行号(可用于合并表格)
startcolint,默认 0数据起始写入的列号
engine{‘xlsxwriter’, ‘openpyxl’, ‘xlwt’}, 可选指定使用的引擎:
- xlsxwriter: 支持样式、图表
- openpyxl: 支持 .xlsx 格式读写
- xlwt: 仅支持 .xls 格式(旧版)
merge_cellsbool,默认 True是否合并多级索引/列标题单元格
inf_repstr,默认 'inf'正负无穷的表示方式(inf, -inf
freeze_panestuple of (rows, cols),可选冻结窗格设置,如 (1, 1) 表示冻结第一行和第一列
storage_optionsdict,可选如果 path 是远程存储(如 S3),提供认证信息等选项
engine_kwargsdict,可选传递给底层引擎的关键字参数(如 xlsxwriter 的 options)

✅ 示例及结果
示例 1:基础用法(默认参数)
import pandas as pd

# 创建一个简单的 DataFrame
df = pd.DataFrame({
    'Name': ['Alice', 'Bob', 'Charlie'],
    'Age': [25, 30, None],
    'Salary': [70000, 80000, 90000]
})

# 写入 Excel 文件
df.to_excel('example.xlsx', index=False)

输出文件内容 (example.xlsx):

NameAgeSalary
Alice25.070000
Bob30.080000
Charlie90000

注意:Age 列中的 None 被替换为空字符串(默认行为)。


示例 2:自定义工作表名称 & 冻结窗格
# 自定义 sheet 名称并冻结第一行
df.to_excel('custom_sheet.xlsx', sheet_name='员工信息', freeze_panes=(1, 0), index=False)

输出:

  • 工作表名为 员工信息
  • 第一行被冻结,便于滚动查看大量数据时保持标题可见

示例 3:使用 xlsxwriter 引擎添加样式
from pandas.io.excel._xlsxwriter import XlsxWriter

# 使用 xlsxwriter 引擎并启用 bold 样式
with pd.ExcelWriter('styled.xlsx', engine='xlsxwriter') as writer:
    df.to_excel(writer, sheet_name='Data', index=False)
    
    # 获取 workbook 和 worksheet 对象
    workbook = writer.book
    worksheet = writer.sheets['Data']
    
    # 设置标题加粗
    bold_format = workbook.add_format({'bold': True})
    worksheet.set_row(0, None, bold_format)

输出:

  • Data 工作表中,第一行(标题)显示为加粗字体

示例 4:从特定行列开始写入数据
# 在第3行第2列开始写入数据
df.to_excel('offset.xlsx', startrow=2, startcol=1, index=False)

输出:

  • 数据从 C3 单元格开始写入,A1~B2 空白

示例 5:写入多个工作表
# 创建两个 DataFrame
df1 = pd.DataFrame({'A': [1, 2], 'B': [3, 4]})
df2 = pd.DataFrame({'X': [5, 6], 'Y': [7, 8]})

# 使用 ExcelWriter 写入多个 sheet
with pd.ExcelWriter('multi_sheets.xlsx') as writer:
    df1.to_excel(writer, sheet_name='Sheet1', index=False)
    df2.to_excel(writer, sheet_name='Sheet2', index=False)

输出:

  • Sheet1 包含 A、B 列数据
  • Sheet2 包含 X、Y 列数据

示例 6:自定义浮点数格式
# 设置浮点数保留两位小数
df.to_excel('formatted.xlsx', float_format="%.2f", index=False)

输出:

  • 所有浮点数列(如 Age)显示为两位小数:
NameAgeSalary
Alice25.0070000
Bob30.0080000
Charlie90000

⚠️ 注意事项
  • 推荐使用 xlsxwriteropenpyxl 引擎,支持 .xlsx 格式。
  • 若需读取 Excel 文件,可使用 pd.read_excel()
  • 多个 sheet 写入时,必须使用 ExcelWriter 上下文管理器。
  • 冻结窗格功能在 xlsxwriter 中支持良好。
  • 不建议使用 xlwt 引擎(仅支持 .xls,不支持新特性)。

🧰 安装依赖
pip install pandas openpyxl xlsxwriter

📝 总结
特性说明
方法名DataFrame.to_excel()
主要用途将 DataFrame 写入 Excel 文件
支持功能自定义 sheet 名称、冻结窗格、浮点格式、多 sheet 写入等
常见场景数据导出、报表生成、可视化前的数据准备
推荐引擎xlsxwriter(支持样式)、openpyxl(支持 .xlsx)
输出形式Excel 文件(.xlsx)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

liuweidong0802

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值