无法使用 pd.read_pickle 或 pickle.load 读取 pickeld 数据帧

Can't read in pickeld dataframe with either pd.read_pickle or pickle.load

提问人:Cici Xu 提问时间:11/15/2023 最后编辑:Cici Xu 更新时间:11/15/2023 访问量:38

问:

我正在尝试读取我腌制的数据帧。直到上周,它运行良好,但今天我收到一个错误,上面写着“ValueError:不支持的泡菜协议:5”。

我发现此页面不支持 pickle-protocol-5 并下载了 pickle5,将我的读入代码从 pd.read_pickle 更改为 pickle.load。然后我又收到另一个错误:AttributeError:无法获取属性“_unpickle_block”。所以我找到了另一个页面 cant-get-attribute-unpickle-block,它建议我重新使用 pd.read_pickle!所以我两头都死了。 谁能帮忙?我腌制的数据是数据,我用来读取它的最少代码量是,

#method 1
import pandas as pd
data = pd.read_pickle('df.pkl')

#method 2
import pickle5 as pickle
with open('df.pkl', "rb") as fh:
  data = pickle.load(fh)

我的虚拟环境中的依赖项是依赖项(我本来打算使用表显示它,但由于某种奇怪的原因,这个 markdown 表没有在 stackoverflow 上呈现)

错误的屏幕截图是错误报告。 感谢您抽出宝贵时间接受采访!

pandas pickle attributeerror

评论

0赞 Mortz 11/15/2023
您是否尝试按照第二个链接中的建议降级熊猫?
0赞 Cici Xu 11/15/2023
嗨,Mortz,我刚刚尝试将 pandas 降级到 1.1.5,但仍然不起作用。

答: 暂无答案