【发布时间】:2020-05-24 23:11:49
【问题描述】:
我正在一个生成数据帧的函数上运行一个循环,如下所示:
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。
【问题讨论】:
-
您需要将所有创建的数据帧保存到单个 csv 文件中吗?
-
“循环每次都会覆盖现有的工作表。”:首先在
df中聚合,然后写入一次 -
将
pd.ExcelWriter的开头移到 for 循环之外,这样它就会在其中打开和关闭一次,而不是每次迭代都覆盖它 -
乔恩·克莱门茨,你是个明星,这就像一种享受。 :-)
标签: python excel pandas dataframe append