Pandas read_pickle因缺失旧模块报错的兼容读取方法咨询
问题背景
- 自研小型仿真环境的结果存储、分析流程之前一直运行稳定:仿真跑完后,评估结果会以Pandas数据帧形式保存为pickle文件;后续在Jupyter Notebook开展分析时,直接通过
df = pd.read_pickle(path)加载数据完成可视化,同时会通过df.attr将元数据标注为数据帧的自定义属性,这类属性此前都能被正常加载。 - 仿真工具迭代后对应的Python包完成更名,现在读取历史旧结果文件时会直接抛出
ModuleNotFoundError,提示找不到更名前的旧版本包simulator_old。 - 当前排查陷入停滞:新生成的结果文件用
pd.read_pickle()读取完全正常,但旧文件一加载就直接崩溃,没法进一步定位到底是哪个条目触发的错误;初步推测是之前不小心把旧包的某个对象写入了数据帧的属性中,但因为加载流程直接中断,也没法验证这个猜测。
核心诉求
- 实现新旧版本结果文件的兼容读取,不需要额外安装旧版本的
simulator_old包 - 调整读取逻辑,让解析过程自动跳过无法解析的异常条目,完整加载其余可正常读取的内容
- 探索可行的旧数据恢复方案,比如是否可以实现pickle解析器自动忽略这类模块缺失的错误
内容的提问来源于stack exchange,提问作者stefanbschneider
相关产品推荐
相关产品推荐

