pd.ExcelWriter 实现数据写入不同sheet
pd.ExcelWriter 将数据写入不同sheet
当结合for循环使用时,需注意放在for循环前面
以下写法,仅生成一个sheet,原因在于pd.ExcelWriter 的mode默认是w,每次for循环写入数据都会对原有的数据进行覆盖,最终只会生成一个sheet。
import pandas as pd df1 = pd.DataFrame([["AAA", "BBB"]], columns=["Spam", "Egg"]) df2 = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"]) list_ = ["Sheet_1", "Sheet_2"] for sheetname in list_: with pd.ExcelWriter("/Users/wang/Desktop/path_to_file.xlsx") as writer: df1.to_excel(writer, sheet_name=sheetname)
修改后的写法,可以实现诉求。
方案一:with 放在for循环前
import pandas as pd df1 = pd.DataFrame([["AAA", "BBB"]], columns=["Spam", "Egg"]) df2 = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"]) list_ = ["Sheet_1", "Sheet_2"] with pd.ExcelWriter("/Users/wang/Desktop/path_to_file1.xlsx") as writer: for sheetname in list_: df1.to_excel(writer, sheet_name=sheetname)
方案二:修改engine和mode
import pandas as pd df1 = pd.DataFrame([["AAA", "BBB"]], columns=["Spam", "Egg"]) df2 = pd.DataFrame([["ABC", "XYZ"]], columns=["Foo", "Bar"]) list_ = ["Sheet_1", "Sheet_2"] for sheetname in list_: with pd.ExcelWriter("/Users/wang/Desktop/path_to_file.xlsx", engine="openpyxl", mode="a") as writer: df1.to_excel(writer, sheet_name=sheetname)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!