with pd.ExcelWriter(...) as writer
可以将多个内容写入一个 Excel 文件中。具体地说,它创建了一个Excel 文件写入器,使得我们可以在一个文件中创建多个工作表(Sheet)。
with pd.ExcelWriter("模型指标和损失值.xlsx") as writer:
metrics_df.to_excel(writer, sheet_name="Metrics", index=False)
losses_df.to_excel(writer, sheet_name="Losses", index=False)
with pd.ExcelWriter(...) as writer
详解
1. pd.ExcelWriter("模型指标和损失值.xlsx")
-
pd.ExcelWriter
是 Pandas 提供的类,用于将数据写入 Excel 文件(.xlsx
格式)。 -
"模型指标和损失值.xlsx"
是要保存的 Excel 文件的名称。在运行代码时会创建这个文件,如果文件已存在,会覆盖原内容。 - 通过
pd.ExcelWriter
,我们可以在同一个 Excel 文件中创建不同的工作表(sheet)。
2. with
语句的作用
-
with ... as writer:
表示以上下文管理的方式使用ExcelWriter
,可以确保写入操作完成后自动关闭文件。 - 上下文管理的方式 (
with
) 可以有效管理文件资源,防止文件写入后忘记关闭导致的数据损坏。
3. writer
的作用
-
writer
是pd.ExcelWriter
实例的句柄,用于控制文件写入过程。
4. to_excel(writer, sheet_name="Metrics", index=False)
-
metrics_df.to_excel(writer, sheet_name="Metrics", index=False)
将metrics_df
数据写入到writer
所指定的 Excel 文件的"Metrics"
工作表中。 -
sheet_name="Metrics"
表示创建的工作表名称为"Metrics"
。 -
index=False
表示不将数据框的索引写入 Excel 表中。
5. to_excel(writer, sheet_name="Losses", index=False)
-
losses_df.to_excel(writer, sheet_name="Losses", index=False)
将losses_df
数据写入到 Excel 文件的"Losses"
工作表中。 - 因此,最终的 Excel 文件将有两个工作表,一个名为
"Metrics"
,另一个名为"Losses"
,每个工作表分别包含metrics_df
和losses_df
的数据。
代码示例解释
import pandas as pd
# 示例数据
metrics_df = pd.DataFrame({"MSE": [0.1], "RMSE": [0.3], "MAE": [0.2], "R2 Score": [0.9]})
losses_df = pd.DataFrame({"Epoch": list(range(1, 101)), "Train Loss": [0.5] * 100, "Test Loss": [0.6] * 100})
# 使用 pd.ExcelWriter 写入多个工作表
with pd.ExcelWriter("模型指标和损失值.xlsx") as writer:
metrics_df.to_excel(writer, sheet_name="Metrics", index=False) # 创建 Metrics 工作表
losses_df.to_excel(writer, sheet_name="Losses", index=False) # 创建 Losses 工作表
# 输出结果
print("Excel 文件已创建,包含两个工作表:'Metrics' 和 'Losses'。")
运行结果
此代码将创建一个名为 "模型指标和损失值.xlsx"
的 Excel 文件,包含两个工作表:
-
"Metrics"
:包含metrics_df
的数据(例如模型的 MSE、RMSE、MAE、R² 等)。 -
"Losses"
:包含losses_df
的数据(例如每个 epoch 的训练损失和测试损失)。
这样可以在一个文件中查看多个内容,便于分析和共享。