Python 写入 CSV 文件的两种实现方式:csv 与 pandas
本文介绍了在 Python 中将数据写入 CSV 文件的两种常用方法。针对深度学习训练中每个 epoch 记录准确率的需求,分别演示了使用内置 csv 模块和 pandas 库进行追加写入的操作。重点讲解了如何处理追加模式下的表头重复问题,并提供了对应的代码示例与结果展示,帮助开发者快速实现日志数据的持久化存储。
问题描述
在深度学习任务的训练过程中,通常需要在每个 epoch 结束时记录当前的准确率指标(参考下图)。为了实现这一功能,在 Python 中可以通过 csv 模块或 pandas 库将数据写入 CSV 文件。本文对此进行简要记录与分享。

以下示例代码采用追加模式进行写入,每次执行仅写入一行数据。
方法一:使用 csv 模块
import csv
log_path = 'log/temp.csv'
file = open(log_path, 'a+', encoding='utf-8', newline='')
csv_writer = csv.writer(file)
csv_writer.writerow([f'Epoch', 'Accuracy'])
csv_writer.writerow(['1', '96.25%'])
file.close()代码执行后,打开生成的文件效果如下图所示:

方法二:使用 pandas 库
import os
import pandas as pd
path = 'temp.csv'
# 一次写入一行
df = pd.DataFrame(data=[['1', '98.2789%']])
# 一次写入多行
df = pd.DataFrame(data=[['1', '98.2789%'], ['2', '76.2345%']])
# 解决追加模式写的表头重复问题
if not os.path.exists(path):
df.to_csv(path, header=['epoch', 'accuracy'], index=False, mode='a')
else:
df.to_csv(path, header=False, index=False, mode='a')
代码执行后,打开生成的文件效果如下图所示:

至此,关于 Python 写入 CSV 文件的两种方法介绍完毕。如需了解更多相关技术内容,可查阅本站往期文章或继续浏览后续教程,感谢大家的支持!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









