循环绘制DataFrame每行数据并按索引保存图片的实现
解决方案
你的核心问题有两个:一是当前循环遍历的是DataFrame的列名而非每行数据,二是每行存储的是逗号分隔的字符串,需要先转换为数值列表才能绘图。以下是可行的实现代码:
import pandas as pd import matplotlib.pyplot as plt # 读取CSV文件 df = pd.read_csv("data.csv") # 遍历每行数据,同时获取索引 for idx, row in df.iterrows(): # 将每行的字符串按逗号拆分,转换为浮点数值列表 data_values = row['dt'].split(',') data_values = [float(val) for val in data_values] # 创建绘图 plt.figure() plt.plot(data_values) # 可选:添加标题等美化元素 plt.title(f"Data from row {idx}") plt.xlabel("Index") plt.ylabel("Value") # 保存图片,文件名用索引命名 plt.savefig(f"{idx}.jpg") # 关闭当前绘图,释放内存(处理10000行时非常重要) plt.close()
关键细节说明:
- 使用
df.iterrows()来同时获取每行的索引和数据,这是遍历DataFrame行数据的标准方式 - 每行的
row['dt']是字符串类型,必须用split(',')拆分后转换为浮点型,否则无法用于绘图 - 处理10000行数据时,务必调用
plt.close()关闭每个绘图,避免内存溢出 - 如果需要调整图片分辨率或格式,可以在
plt.savefig中添加参数,比如plt.savefig(f"{idx}.jpg", dpi=300)来提高清晰度
内容的提问来源于stack exchange,提问作者pro
相关产品推荐
相关产品推荐

