cry*_*ick 30 python pickle pandas netflix-metaflow
我使用 Metaflow 加载数据框。它已成功从工件存储中取消腌制,但当我尝试使用 查看其索引时df.index
,收到一条错误消息ModuleNotFoundError: No module named 'pandas.core.indexes.numeric'
: 。为什么?
我在这里和这里查看了具有类似错误消息的其他答案,这些答案说这是由于尝试使用旧版本的 Pandas 来取消数据帧引起的。然而,我的错误略有不同,并且不能通过升级 Pandas ( pip install pandas -U
) 来修复。
cry*_*ick 36
这个问题是由新的Pandas 2.0.0 版本破坏了与 Pandas 1.x 的向后兼容性引起的,尽管我没有在发行说明中看到这一点。解决方案是将pandas降级到1.x系列:pip install "pandas<2.0.0"
Mik*_*e T 33
尝试使用该pandas.read_pickle()
方法来加载文件而不是pickle
模块:
import pandas as pd
df = pd.read_pickle("file.pkl")
Run Code Online (Sandbox Code Playgroud)
pandas 方法应该提供读取旧文件的兼容性,并且“仅保证向后兼容 pandas 0.20.3,前提是该对象是使用 to_pickle 序列化的。” 我对 pandas-1.x 的测试表明它也可以读取从pickle
模块写入的一些文件。