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 或序列,可选
如果需要,索引列的列标签。如果未指定,且 header 和 index 为 True,则使用索引名称。如果 DataFrame 使用 MultiIndex,则应提供一个序列。
- startrowint, 默认 0
左上角单元格行以转储数据框。
- startcolint, 默认 0
左上角单元格列以转储数据框。
- 引擎str, 可选
使用的写引擎,’openpyxl’ 或 ‘xlsxwriter’。你也可以通过选项
io.excel.xlsx.writer
或io.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
。请参阅fsspec
和urllib
获取更多详细信息,关于存储选项的更多示例请参考 这里。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")