如何使用Python pandas将多个工作表导出到同一个Excel文件中
pandas多工作表导出到同一Excel的实现方案
直接调用DataFrame.to_excel('test.xlsx')每次都会覆盖原文件,所以只能保留最后一次写入的工作表,你需要用ExcelWriter对象统一管理写入动作:
基础写入(覆盖原有文件)
假设你有多个待导出的DataFrame,写法如下:
import pandas as pd # 示例数据,替换为你自己的DataFrame df_sale = pd.DataFrame({'商品': ['A','B','C'], '销量': [100,200,300]}) df_stock = pd.DataFrame({'商品': ['A','B','C'], '库存': [50,120,80]}) # 初始化写入对象,with语句会自动处理文件关闭 with pd.ExcelWriter('test.xlsx', engine='openpyxl') as writer: # 每个sheet对应一次to_excel调用,指定sheet名称 df_sale.to_excel(writer, sheet_name='销量数据', index=False) df_stock.to_excel(writer, sheet_name='库存数据', index=False)
参数说明:
index=False:导出时不携带pandas默认的行索引,不需要可以删除该参数engine='openpyxl':xlsx格式的写入依赖库,未安装的话执行pip install openpyxl即可
追加写入(不覆盖原有Excel内容)
如果需要在已有Excel文件里新增工作表,修改mode参数即可:
with pd.ExcelWriter('test.xlsx', engine='openpyxl', mode='a', if_sheet_exists='replace') as writer: df_user.to_excel(writer, sheet_name='用户数据', index=False)
if_sheet_exists参数可选值:
replace:覆盖同名sheetnew:自动给重名sheet加后缀避免冲突error:遇到同名sheet直接报错
注意:pandas 1.4.0及以上版本才支持
if_sheet_exists参数,低版本需要自行判断sheet是否存在后再写入。
内容的提问来源于stack exchange,提问作者Saifeddine Farjallah
相关产品推荐
相关产品推荐

