pandas.DataFrame.to_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 表格。

要将单个对象写入 Excel .xlsx 文件,只需指定目标文件名。要写入多个工作表,需要使用目标文件名创建一个 ExcelWriter 对象,并在文件中指定要写入的工作表。

可以通过指定唯一的 sheet_name 来写入多个工作表。将所有数据写入文件后,需要保存更改。请注意,使用已存在的文件名创建 ExcelWriter 对象将导致现有文件内容被清除。

参数:
excel_writer类路径、类文件或 ExcelWriter 对象

文件路径或现有的 ExcelWriter。

sheet_namestr, 默认 ‘Sheet1’

包含 DataFrame 的工作表名称。

na_repstr, 默认 ‘’

缺失数据表示。

float_formatstr, 可选

浮点数的格式字符串。例如 float_format="%.2f" 会将 0.1234 格式化为 0.12。

序列或字符串列表,可选

要写入的列。

标题布尔值或字符串列表,默认值为 True

写出列名。如果给定一个字符串列表,则假定它们是列名的别名。

索引布尔值, 默认为 True

写入行名(索引)。

index_labelstr 或序列,可选

如果需要,索引列的列标签。如果未指定,且 headerindex 为 True,则使用索引名称。如果 DataFrame 使用 MultiIndex,则应提供一个序列。

startrowint, 默认 0

左上角单元格行以转储数据框。

startcolint, 默认 0

左上角单元格列以转储数据框。

引擎str, 可选

使用的写引擎,’openpyxl’ 或 ‘xlsxwriter’。你也可以通过选项 io.excel.xlsx.writerio.excel.xlsm.writer 来设置。

merge_cells布尔值, 默认为 True

将 MultiIndex 和分层行写为合并单元格。

inf_repstr, 默认 ‘inf’

无穷大的表示(Excel 中没有原生的无穷大表示)。

freeze_panesint 的元组(长度为 2),可选

指定要冻结的基于1的最底部行和最右边列。

storage_optionsdict, 可选

对于特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于HTTP(S) URL,键值对会作为头选项转发到 urllib.request.Request。对于其他URL(例如以“s3://”和“gcs://”开头),键值对会转发到 fsspec.open。请参阅 fsspecurllib 获取更多详细信息,关于存储选项的更多示例请参考 这里

Added in version 1.2.0.

engine_kwargsdict, 可选

传递给 excel 引擎的任意关键字参数。

参见

to_csv

将 DataFrame 写入一个逗号分隔值(csv)文件。

ExcelWriter

用于将 DataFrame 对象写入 excel 表格的类。

read_excel

将 Excel 文件读取到 pandas DataFrame 中。

read_csv

将逗号分隔值(csv)文件读取到 DataFrame 中。

io.formats.style.Styler.to_excel

将样式添加到Excel工作表。

备注

为了与 to_csv() 兼容,to_excel 在写入之前将列表和字典序列化为字符串。

一旦工作簿被保存,如果不重写整个工作簿,就无法写入更多数据。

pandas 将检查行数、列数和单元格字符数是否超过 Excel 的限制。所有其他限制必须由用户检查。

例子

创建、写入并保存工作簿:

>>> df1 = pd.DataFrame(
...     [["a", "b"], ["c", "d"]],
...     index=["row 1", "row 2"],
...     columns=["col 1", "col 2"],
... )
>>> df1.to_excel("output.xlsx")  

要指定工作表名称:

>>> df1.to_excel("output.xlsx", sheet_name="Sheet_name_1")  

如果你想在工作簿中写入多个工作表,则需要指定一个 ExcelWriter 对象:

>>> df2 = df1.copy()
>>> with pd.ExcelWriter("output.xlsx") as writer:  
...     df1.to_excel(writer, sheet_name="Sheet_name_1")
...     df2.to_excel(writer, sheet_name="Sheet_name_2")

ExcelWriter 也可以用于追加到现有的 Excel 文件中:

>>> with pd.ExcelWriter("output.xlsx", mode="a") as writer:  
...     df1.to_excel(writer, sheet_name="Sheet_name_3")

要设置用于写入 Excel 文件的库,可以传递 engine 关键字(默认引擎会根据文件扩展名自动选择):

>>> df1.to_excel("output1.xlsx", engine="xlsxwriter")