如何通过For Loop将Dataframes导出至同一Excel工作簿的不同工作表
解决Pandas循环导出多DataFrame到同一Excel工作簿的问题
你的核心问题是每次循环调用to_excel时都会重新生成整个Excel文件,导致最终要么只保留最后一个工作表,要么误生成多个独立文件。正确的做法是使用ExcelWriter上下文管理器,全程操作同一个工作簿实例。
修正后的代码
import pandas as pd FileName_List = ["AAPL", "GME", "MSFT", "NTDOY", "Z"] # 用with语句管理ExcelWriter,自动处理文件的打开/关闭 with pd.ExcelWriter("Final_Output.xlsx") as writer: for FileName in FileName_List: ReadName = FileName + ".csv" Raw_Data = pd.read_csv(ReadName, sep=",") # 此处插入你的数据处理代码 # 指定writer对象,将数据写入对应工作表 Raw_Data.to_excel(writer, sheet_name=FileName)
关键说明
- 必须用
with语句初始化ExcelWriter:它会确保文件在循环结束后正确关闭,避免你之前遇到的zipfile格式错误(这类错误大多是因为文件未被正确释放) - 循环内的
to_excel必须传入writer参数:否则会默认创建新文件,覆盖之前的内容 - 所有处理后的DataFrame都会写入同一个
Final_Output.xlsx文件,每个工作表以循环中的FileName命名
内容的提问来源于stack exchange,提问作者Emm
相关产品推荐
相关产品推荐

