我正在生成数据帧的函数上运行循环,如下所示:
Prd1 Prd2 Prd3 Prd4 Prd5 Prd6
Loc1 0 0 0 0 0 0
Loc2 0 0 0 0 0 0
Loc3 0 30.61 0 0 319.58 430.87
Loc4 0 0 0 0 0 120.73
Loc5 0 0 0 0 0 0
Loc6 78.21 822.36 0 0 0 0
我想多次运行该函数,以生成一系列数据框,然后分析或可视化随时间的演变。为此,最好将它们全部放在一个excel工作簿中。但是,我为此而苦苦挣扎。我已经尝试过
for case in CASES:
B= A[case]
result = function(B)
print(result)
with pd.ExcelWriter('results.xlsx') as writer: # doctest: +SKIP
result.to_excel(writer, sheet_name='case_'+str(case))
我希望这会将不同的结果写入同一电子表格。但是结果是,电子表格仅包含带有最后一种情况的选项卡。我可以看到以上情况在CASES循环中如何每次都会覆盖现有工作表。是否有功能来保存已经存在的工作表并将任何新工作表“追加”到现有工作簿?提前致谢。关于P。
根据此SO thread,您可以在开始循环之前检索工作表名称的列表,并检查现有工作表并跳过它们。
xl = pd.ExcelFile('results.xlsx')
existing_sheets = xl.sheet_names
for case in CASES:
if f'cast_{str(case)}' in existing_sheets:
continue
B= A[case]
result = function(B)
print(result)
with pd.ExcelWriter('results.xlsx') as writer: # doctest: +SKIP
result.to_excel(writer, sheet_name=f'case_{str(case)}')