Python新手求助:DataFrame保存后无法正确重新导入的解决方法
正确的DataFrame保存与恢复方案
你遇到的问题根源是to_string()生成的是用于展示的格式化文本(包含索引、表头的排版格式),不是结构化的可解析数据,所以read_csv无法正确拆分列。下面是几种适合中断后恢复数据的结构化保存/读取方式:
方案1:CSV格式(推荐,轻量易读)
保存时直接用Pandas的to_csv方法生成标准结构化CSV文件,而非格式化文本:
# 保存数据(index=False避免存储不必要的索引列) avg_data.to_csv('last_avg_data.csv', index=False)
读取时用read_csv直接解析:
import pandas as pd # 恢复数据 avg_data = pd.read_csv('last_avg_data.csv')
方案2:Pickle格式(适合复杂数据结构)
如果你的avg_data包含特殊数据类型、多层索引等复杂结构,Pickle能完整保留所有信息:
# 保存 avg_data.to_pickle('last_avg_data.pkl') # 恢复 avg_data = pd.read_pickle('last_avg_data.pkl')
注意:Pickle是二进制格式,无法直接用文本编辑器查看,但恢复时不会有格式问题。
方案3:JSON格式(跨语言兼容)
如果需要和其他语言交互,JSON是不错的选择:
# 保存(orient='split'确保结构可正确恢复) avg_data.to_json('last_avg_data.json', orient='split') # 恢复 avg_data = pd.read_json('last_avg_data.json', orient='split')
中断恢复的实用技巧
每次更新avg_data后立刻保存,启动时先检查保存文件是否存在,存在则恢复,否则初始化:
import pandas as pd import os save_file = 'last_avg_data.csv' # 启动时恢复数据 if os.path.exists(save_file): avg_data = pd.read_csv(save_file) else: # 根据你的数据结构初始化空DataFrame avg_data = pd.DataFrame(columns=['列名1', '列名2', '列名3']) # 你的监控与数据处理逻辑 # ...(处理新增文件、更新avg_data的代码) # 更新后立刻保存 avg_data.to_csv(save_file, index=False)
内容的提问来源于stack exchange,提问作者Data123
相关产品推荐
相关产品推荐

