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, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None, storage_options=None)[源代码]#
将对象写入Excel工作表。
要将单个对象写入Excel.xlsx文件,只需指定目标文件名。要写入多个工作表,必须创建 ExcelWriter 对象,并指定文件中要写入的工作表。
通过指定UNIQUE可以写入多个工作表 sheet_name 。将所有数据写入文件后,需要保存更改。请注意,创建 ExcelWriter 对象的文件名已存在将导致现有文件的内容被擦除。
- 参数
- excel_writer类似路径、类似文件或ExcelWriter对象
文件路径或现有的ExcelWriter。
- sheet_name字符串,默认“Sheet1”
将包含DataFrame的工作表的名称。
- na_rep字符串,默认为‘’
缺少数据表示形式。
- float_format字符串,可选
浮点数的格式字符串。例如
float_format="%.2f"
将格式设置为0.1234到0.12。- columns字符串序列或列表,可选
要写入的列。
- headerBool或字符串列表,默认为True
写出列名。如果给定一个字符串列表,则假定它是列名的别名。
- index布尔值,默认为True
写入行名(索引)。
- index_label字符串或序列,可选
索引列的列标签(如果需要)。如果未指定,则为 header 和 index 为True,则使用索引名称。如果DataFrame使用多索引,则应给出序列。
- startrow整型,默认为0
要转储数据帧的左上角单元格行。
- startcol整型,默认为0
要转储数据帧的左上角单元格列。
- engine字符串,可选
写入要使用的引擎,‘Openpyxl’或‘xlsxWriter’。您也可以通过以下选项进行设置
io.excel.xlsx.writer
,io.excel.xls.writer
,以及io.excel.xlsm.writer
。1.2.0 版后已移除: 作为 xlwt 不再维护包,则
xlwt
未来版本的Pandas将不再使用发动机。- merge_cells布尔值,默认为True
将多索引和层次结构行作为合并单元格写入。
- encoding字符串,可选
生成的EXCEL文件的编码。只对xlwt是必需的,其他编写器本身就支持Unicode。
- inf_rep字符串,默认‘inf’
无穷大的本机表示法(Excel中没有无穷大的本机表示法)。
- verbose布尔值,默认为True
在错误日志中显示更多信息。
- freeze_panesInt的元组(长度为2),可选
指定要冻结的从一开始的最低行和最右列。
- storage_optionsDICT,可选
对特定存储连接有意义的额外选项,例如主机、端口、用户名、密码等。对于HTTP(S)URL,键-值对被转发到
urllib.request.Request
作为标题选项。对于其他URL(例如,以“s3://”和“gcs://”开头),键-值对被转发到fsspec.open
。请看fsspec
和urllib
有关更多详细信息和有关存储选项的更多示例,请参阅 here 。1.2.0 新版功能.
参见
to_csv
将DataFrame写入逗号分隔值(CSV)文件。
ExcelWriter
用于将DataFrame对象写入Excel工作表的类。
read_excel
将Excel文件读入Pandas数据帧。
read_csv
将逗号分隔值(CSV)文件读入DataFrame。
注意事项
为了与
to_csv()
,TO_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: ... df.to_excel(writer, sheet_name='Sheet_name_3')
若要设置用于写入Excel文件的库,可以将 engine 关键字(根据文件扩展名自动选择默认引擎):
>>> df1.to_excel('output1.xlsx', engine='xlsxwriter')