saving - python pickle function
Python-read_pickle ImportError: No hay un módulo llamado indexes.base (2)
Escribo un marco de datos numérico en el archivo .pkl en una máquina (df.to_pickle ()), por alguna razón, tengo que abrir este archivo en una máquina diferente (pd.read_pickle ()), aparece un error de importación que dice: No módulo llamado indexes.base, y cuando intento importar índices, no parece haber uno.
Cuando intenté to_csv en una máquina y read_csv en una diferente, funcionó.
¡Muchas gracias!
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
El uso de pd.read_pickle
también puede ayudar a la compatibilidad con versiones anteriores si está intentando leer solo un marco de datos. Ver el tema github .
Desafortunadamente tengo un diccionario de marcos de datos, así que intentaré usar un entorno virtual con una versión anterior para cargar, volver a guardar solo los marcos de datos y luego usar pd.read_pickle
.
Por favor verifique la versión de Python y Pandas en ambas máquinas.
Además, si las versiones son iguales, puedes compartir el marco de datos que usaste con to_pickle (), para que podamos verlo.