将对象写入Excel工作表。
要将单个对象写入 Excel .xlsx 文件,只需指定目标文件名即可。要写入多个工作表,必须创建具有目标文件名的ExcelWriter对象,并在文件中指定要写入的工作表。
可以通过指定唯一sheet_name写入多个工作表。将所有数据写入文件后,必须保存更改。请注意,创建具有已存在的文件名的ExcelWriter对象将导致删除现有文件的内容。
1 df.to_excel( )的参数
写入Excel文件
df.to_excel(self, excel_writer, # 输出路径 sheet_name='Sheet1', # 命名excel工作表名 na_rep='', # 缺失值填充 ,可以设置为字符串 float_format=None, columns=None, # 选择输出的的列存入。 header=True, # 指定作为列名的行,默认0,即取第一行 index=True, # 默认为True,显示index,当index=False 则不显示行索引(名字) index_label=None, # 设置索引列的列名 startrow=0, startcol=0, engine=None, merge_cells=True, encoding=None, inf_rep='inf', verbose=True, freeze_panes=None)
2 Parameters参数
1.excel_writer:str or ExcelWriter object
文件路径或现有的ExcelWriter。
2.sheet_name:str, default ‘Sheet1’
包含DataFrame的工作表名称。
3.na_rep:str, default ‘’
缺少数据表示。
如果na_rep设置为bool值,则写入excel时改为0和1;也可以写入字符串或数字
4.float_format:str, optional
浮点数的格式字符串。例如 float_format="%.2f"将格式0.1234设置为0.12。
5.columns:sequence or list of str, optional
要写入的列。
6.header:bool or list of str, default True
写出列名称。如果给定字符串列表,则假定该字符串为列名称的别名。
7.index:bool, default True
写入行名(索引)。
8.index_label:str or sequence, optional
索引列的列标签(如果需要)。如果未指定,并且 标头和索引为True,则使用索引名称。如果DataFrame使用MultiIndex,则应给出一个序列。
9.startrow:int, default 0
左上角的单元格行来转储数据帧。
10.startcol:int, default 0
左上角的单元格列以转储数据帧。
11.engine:str, optional
编写要使用的引擎,“ openpyxl”或“ xlsxwriter”。您也可以通过选项设置此io.excel.xlsx.writer,io.excel.xls.writer和 io.excel.xlsm.writer。
12.merge_cells:bool, default True
将MultiIndex和Hierarchical Rows写入合并的单元格
13.encoding:str, optional
生成的excel文件的编码。只有xlwt才需要,其他作者本机支持unicode。
14.inf_rep:str, default ‘inf’
表示无穷大(Excel中没有本机表示无穷大)。
15.verbose:bool, default True
在错误日志中显示更多信息。
16.freeze_panes:tuple of int (length 2), optional
指定要冻结的从一开始的最底行和最右列。
笔记
为了与兼容to_csv(), to_excel在写入之前将列表和字典序列化为字符串。
保存工作簿后,如果不重写整个工作簿就无法写入更多数据。
3 例子
创建,写入和保存工作簿:
>>> 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')