Fat*_*923 45 python pickle pandas
当我尝试读取由以前版本的pandas保存的pickle文件时,它会产生一个ImportError
.
ImportError:没有名为'pandas.core.internals.managers'的模块; 'pandas.core.internals'不是一个包
stackoverflow没有命中,所以我想分享我对这个特定问题的解决方案.
Fat*_*923 47
由于以前保存的pickle文件的编码,此错误消失.如果您将pandas更新为新修改的版本,则会产生此导入错误.
小智 20
使用pandas version时遇到相同的错误0.23.4
。
我0.24.1
通过以下方式明确安装了pandas 版本:
pip3 install pandas==0.24.1
Run Code Online (Sandbox Code Playgroud)
这解决了我的问题(我使用的Python版本是3.5)
小智 7
我遇到了同样的问题,但对我来说,这似乎来自于pickle包/与pandas包的交互。
我的熊猫版本为0.23.4。我pandas.Dataframe.to_pickle
使用python 3.6.6和Pandas 0.23.4版保存了一些咸菜文件。然后,我升级到python 3.7.2(Pandas版本0.23.4),并使用启用了读取这些pickle文件的功能pandas.Dataframe.read_pickle
。接下来,我将熊猫升级到熊猫0.24.1,它对我有用。我可以再次读取这些文件。
小智 7
对于大多数情况,更新 pandas 将是最佳解决方案。但是,如果您在更新 pandas 版本时受到限制,并且需要使用在更高版本中生成和腌制的 pandas 对象,则可以添加类位置映射,如下所示。
from pandas.compat.pickle_compat import _class_locations_map
_class_locations_map.update({
('pandas.core.internals.managers', 'BlockManager'): ('pandas.core.internals', 'BlockManager')
})
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
27878 次 |
最近记录: |