ModuleNotFoundError:使用 Metaflow 时没有名为“pandas.core.indexes.numeric”的模块

问题描述 投票:0回答:4

我使用 Metaflow 加载 Dataframe。它已成功从工件存储中取消腌制,但当我尝试使用

df.index
查看其索引时,我收到一条错误,提示
ModuleNotFoundError: No module named 'pandas.core.indexes.numeric'
。为什么?

我查看了具有类似错误消息的其他答案herehere,它们说这是由于尝试使用旧版本的 Pandas 来取消数据帧而引起的。然而,我的错误略有不同,并且不能通过升级 Pandas 来修复(

pip install pandas -U
)。

python pandas pickle netflix-metaflow
4个回答
14
投票

此问题是由新的 Pandas 2.0.0 版本 破坏了与 Pandas 1.x 的向后兼容性引起的,尽管我没有在发行说明中看到这一点。解决方案是将pandas降级到1.x系列:

pip install "pandas<2.0.0"


10
投票

尝试使用

pandas.read_pickle()
方法而不是
pickle
模块来加载文件:

import pandas as pd

df = pd.read_pickle("file.pkl")

pandas 方法应该提供读取旧文件的兼容性,并且“仅保证向后兼容 pandas 0.20.3,前提是对象是使用 to_pickle 序列化的。”我对 pandas-1.x 的测试表明它也可以读取从

pickle
模块写入的一些文件。


0
投票

尝试使用

pd.compat.pickle_compat.load()
,因为这是我的情况的唯一解决方案:

import pandas as pd

df = pd.compat.pickle_compat.load('file.pkl') 

0
投票

所以我不知道为什么会这样,但 joblib.load 无法读取 pickle,并出现相同的错误“名为 'pandas.core.indexes.numeric' 的模块”,然后我安装了 prefect 和 simple_salesforce 以及它现在的工作原理......不知道为什么,但我认为值得一提

© www.soinside.com 2019 - 2024. All rights reserved.