将对象写入Excel工作表。
要将单个对象写入Excel .xlsx文件,仅需要指定目标文件名。要写入多张纸,必须创建一个ExcelWriter对象和目标文件名,并在文件中指定要写入的工作表。
通过指定唯一可以写入多张纸sheet_name。将所有数据写入文件后,必须保存更改。请注意,创建一个ExcelWriter文件名已存在的对象将导致现有文件的内容被删除。
参数:
excel_writer:str 或 ExcelWriter object文件路径或现有的ExcelWriter。
sheet_name:str, 默认为 ‘Sheet1’包含DataFrame的工作表名称。
na_rep:str, 默认为 ‘’缺少数据表示。
float_format:str, 可选参数浮点数的格式字符串。例如float_format="%.2f"将格式设置为0.1234到0.12。
columns:sequence 或 list of str, 可选参数要写的列。
header:bool 或 list of str, 默认为 True写出列名。如果给出了字符串列表,则假定它是列名的别名。
index:bool, 默认为 True写行名(索引)。
index_label:str 或 sequence, 可选参数索引列的列标签(如果需要)。如果未指定,并且header和index如果为True,则使用索引名称。如果DataFrame使用MultiIndex,则应给出一个序列。
startrow:int, 默认为 0左上角的单元格行转储数据帧。
startcol:int, 默认为 0左上角的单元格列以转储数据帧。
engine:str, 可选参数编写要使用的引擎‘openpyxl’或‘xlsxwriter’。您也可以通过选项进行设置io.excel.xlsx.writer,io.excel.xls.writer和io.excel.xlsm.writer。
merge_cells:bool, 默认为 True将MultiIndex和Hierarchical Rows合并为单元格。
encoding:str, 可选参数生成的excel文件的编码。只有xlwt才需要,其他作者本机支持unicode。
inf_rep:str, 默认为 ‘inf’表示无穷大(Excel中没有本机表示无穷大)。
verbose:bool, 默认为 True在错误日志中显示更多信息。
freeze_panes:tuple of int (length 2), 可选参数指定要冻结的从一开始的最底行和最右列。
注意:
为了与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')