Python - read_pickle ImportError:没有名为indexes.base的模块

Sap*_*ing 27 python pickle importerror

我在机器(df.to_pickle())中写了一个数字数据框到.pkl文件,由于某种原因,我必须在另一台机器上打开这个文件(pd.read_pickle()),我得到一个导入错误说:否模块名为indexes.base,当我尝试导入索引时,似乎没有.

当我在一台机器中尝试to_csv而在另一台机器中尝试read_csv时,它起作用了.

非常感谢!


ImportError                               Traceback (most recent call last)
<ipython-input-199-2be4778e3b0a> in <module>()
----> 1 pd.read_pickle("test.pkl")

C:\Users\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\io\pickle.pyc in read_pickle(path)
 58 
 59     try:
---> 60         return try_read(path)
 61     except:
 62         if PY3:

C:\Users\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\io\pickle.pyc in try_read(path, encoding)
 55             except:
 56                 with open(path, 'rb') as fh:
---> 57                     return pc.load(fh, encoding=encoding, compat=True)
 58 
 59     try:

C:\Users\AppData\Local\Continuum\Anaconda2\lib\site-packages\pandas\compat\pickle_compat.pyc in load(fh, encoding, compat, is_verbose)
114         up.is_verbose = is_verbose
115 
--> 116         return up.load()
117     except:
118         raise

C:\Users\AppData\Local\Continuum\Anaconda2\lib\pickle.pyc in load(self)
856             while 1:
857                 key = read(1)
--> 858                 dispatch[key](self)
859         except _Stop, stopinst:
860             return stopinst.value

C:\Users\AppData\Local\Continuum\Anaconda2\lib\pickle.pyc in load_global(self)
1088         module = self.readline()[:-1]
1089         name = self.readline()[:-1]
--> 1090         klass = self.find_class(module, name)
1091         self.append(klass)
1092     dispatch[GLOBAL] = load_global

C:\Users\AppData\Local\Continuum\Anaconda2\lib\pickle.pyc in find_class(self, module, name)
1122     def find_class(self, module, name):
1123         # Subclasses may override this
--> 1124         __import__(module)
1125         mod = sys.modules[module]
1126         klass = getattr(mod, name)

ImportError: No module named indexes.base
Run Code Online (Sandbox Code Playgroud)

小智 36

此错误可能是由用于保存数据帧的pandas版本与用于加载它的pandas版本之间的版本不匹配引起的.

请检查两台机器中的Python和Pandas版本.

此外,如果版本相同,您能否请与to_pickle()共享您使用的数据帧,以便我们可以查看它.

  • 是的,其他机器中的大熊猫是"0.18.0",我使用的是"0.17.0",一旦我将其更新为0.18.0,它就可以了!非常感谢! (8认同)