使用For循环将多个DataFrame写入Excel不同工作表失败求助
代码无输出问题排查与修复
核心问题
你创建了pd.ExcelWriter对象后,没有执行保存操作——Pandas的ExcelWriter需要显式完成写入并关闭,才能将内存中的数据输出到磁盘文件,这是导致无结果的直接原因。
修复后的完整代码
import pandas as pd fileName = 'Hierarchy_Filtered.csv' filterField = 'Sub Function1' df = pd.read_csv(fileName) finance_subfunctions = df[filterField].unique() data_fields = ['Employee ID', 'Employee First Name', 'Employee Last Name', 'Hire Date', 'Work Location Code Desc', 'Dept Description', 'Job Profile Name'] # 使用with语句自动管理资源,块结束时会自动保存并关闭文件 with pd.ExcelWriter('output.xlsx') as writer: for subfunction in finance_subfunctions: df2 = df.loc[df[filterField] == subfunction] df2 = df2[data_fields] df2.to_excel(writer, sheet_name=subfunction, index=False)
额外排查点
- 确认
Hierarchy_Filtered.csv在当前运行目录下,或者使用完整文件路径(如D:/project/Hierarchy_Filtered.csv) - 检查
Sub Function1列名是否和CSV文件中的完全一致(注意空格、大小写) - 可以添加
print(finance_subfunctions)验证是否成功提取到唯一子函数 - 确认
data_fields中的列名全部存在于DataFrame中,避免因列名错误导致数据为空
内容的提问来源于stack exchange,提问作者Andrew Puetz
相关产品推荐
相关产品推荐

