You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选DataFrame并生成含多个工作表的多个Excel文件

问题原因
  • 你将pd.ExcelWriter()的初始化逻辑放在了内层product循环中,每遍历一个产品,就会重新生成一个同名的Excel文件,直接覆盖上一轮循环生成的文件
  • 每一轮新的ExcelWriter实例仅会写入当前循环对应的单个工作表,之前写入的内容随文件覆盖被清空,因此最终文件里只会保留最后一次循环处理的工作表
解决方法

将ExcelWriter的初始化逻辑移到外层district循环内、product循环外,保证每个地区仅创建一次Excel文件,遍历所有产品时往同一个文件内追加不同工作表即可。

修正后代码示例
for file in district:
    # 每个地区对应一个Excel文件,仅初始化一次写入对象
    output_path = folder + "//Output//" + file + "_{}.xlsx".format(datetime.now().strftime("%Y%m%d"))
    with pd.ExcelWriter(output_path) as xlWriter:
        for prd in product:
            df_district = df[df["SalesDistrict"].isin([file]) & df["ProductSold"].isin([prd])].copy()
            df_district.to_excel(xlWriter, index_label="SalesDate", sheet_name=prd) 

补充说明:

  1. 如果筛选条件为单个值,也可以将isin([xxx])替换为== xxx,运行效果一致
  2. 如果运行报错提示datetime未定义,请在代码开头添加导入语句from datetime import datetime

内容的提问来源于stack exchange,提问作者Dennis Kwone

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 07:24:01