Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ImportError: No module named 'pandas.indexes'

Importing pandas didn't throw the error, but rather trying to read a picked pandas dataframe as such:

import numpy as np import pandas as pd import matplotlib import seaborn as sns sns.set(style="white")  control_data = pd.read_pickle('null_report.pickle') test_data = pd.read_pickle('test_report.pickle') 

The traceback is 165 lines with three concurrent exceptions (whatever that means). Is read_pickle not compatible with pandas version 17.1 I'm running? How do I unpickle my dataframe for use?

Below is a copy of the traceback:

ImportError                               Traceback (most recent call last) C:\Users\test\Anaconda3\lib\site-packages\pandas\io\pickle.py in try_read(path, encoding)      45             with open(path, 'rb') as fh: ---> 46                 return pkl.load(fh)      47         except (Exception) as e:  ImportError: No module named 'pandas.indexes'  During handling of the above exception, another exception occurred:  ImportError                               Traceback (most recent call last) C:\Users\test\Anaconda3\lib\site-packages\pandas\io\pickle.py in try_read(path, encoding)      51                 with open(path, 'rb') as fh: ---> 52                     return pc.load(fh, encoding=encoding, compat=False)      53   C:\Users\test\Anaconda3\lib\site-packages\pandas\compat\pickle_compat.py in load(fh, encoding, compat, is_verbose)     115  --> 116         return up.load()     117     except:  C:\Users\test\Anaconda3\lib\pickle.py in load(self)    1038                 assert isinstance(key, bytes_types) -> 1039                 dispatch[key[0]](self)    1040         except _Stop as stopinst:  C:\Users\test\Anaconda3\lib\pickle.py in load_stack_global(self)    1342             raise UnpicklingError("STACK_GLOBAL requires str") -> 1343         self.append(self.find_class(module, name))    1344     dispatch[STACK_GLOBAL[0]] = load_stack_global  C:\Users\test\Anaconda3\lib\pickle.py in find_class(self, module, name)    1383                 module = _compat_pickle.IMPORT_MAPPING[module] -> 1384         __import__(module, level=0)    1385         if self.proto >= 4:  ImportError: No module named 'pandas.indexes'  During handling of the above exception, another exception occurred:  ImportError                               Traceback (most recent call last) C:\Users\test\Anaconda3\lib\site-packages\pandas\io\pickle.py in read_pickle(path)      59     try: ---> 60         return try_read(path)      61     except:  C:\Users\test\Anaconda3\lib\site-packages\pandas\io\pickle.py in try_read(path, encoding)      56                 with open(path, 'rb') as fh: ---> 57                     return pc.load(fh, encoding=encoding, compat=True)      58   C:\Users\test\Anaconda3\lib\site-packages\pandas\compat\pickle_compat.py in load(fh, encoding, compat, is_verbose)     115  --> 116         return up.load()     117     except:  C:\Users\test\Anaconda3\lib\pickle.py in load(self)    1038                 assert isinstance(key, bytes_types) -> 1039                 dispatch[key[0]](self)    1040         except _Stop as stopinst:  C:\Users\test\Anaconda3\lib\pickle.py in load_stack_global(self)    1342             raise UnpicklingError("STACK_GLOBAL requires str") -> 1343         self.append(self.find_class(module, name))    1344     dispatch[STACK_GLOBAL[0]] = load_stack_global  C:\Users\test\Anaconda3\lib\pickle.py in find_class(self, module, name)    1383                 module = _compat_pickle.IMPORT_MAPPING[module] -> 1384         __import__(module, level=0)    1385         if self.proto >= 4:  ImportError: No module named 'pandas.indexes'  During handling of the above exception, another exception occurred:  ImportError                               Traceback (most recent call last) C:\Users\test\Anaconda3\lib\site-packages\pandas\io\pickle.py in try_read(path, encoding)      45             with open(path, 'rb') as fh: ---> 46                 return pkl.load(fh)      47         except (Exception) as e:  ImportError: No module named 'pandas.indexes'  During handling of the above exception, another exception occurred:  ImportError                               Traceback (most recent call last) C:\Users\test\Anaconda3\lib\site-packages\pandas\io\pickle.py in try_read(path, encoding)      51                 with open(path, 'rb') as fh: ---> 52                     return pc.load(fh, encoding=encoding, compat=False)      53   C:\Users\test\Anaconda3\lib\site-packages\pandas\compat\pickle_compat.py in load(fh, encoding, compat, is_verbose)     115  --> 116         return up.load()     117     except:  C:\Users\test\Anaconda3\lib\pickle.py in load(self)    1038                 assert isinstance(key, bytes_types) -> 1039                 dispatch[key[0]](self)    1040         except _Stop as stopinst:  C:\Users\test\Anaconda3\lib\pickle.py in load_stack_global(self)    1342             raise UnpicklingError("STACK_GLOBAL requires str") -> 1343         self.append(self.find_class(module, name))    1344     dispatch[STACK_GLOBAL[0]] = load_stack_global  C:\Users\test\Anaconda3\lib\pickle.py in find_class(self, module, name)    1383                 module = _compat_pickle.IMPORT_MAPPING[module] -> 1384         __import__(module, level=0)    1385         if self.proto >= 4:  ImportError: No module named 'pandas.indexes'  During handling of the above exception, another exception occurred:  ImportError                               Traceback (most recent call last) <ipython-input-17-3b05fe7d20a4> in <module>()       3 # test_data = np.genfromtxt(fh, usecols=2)       4  ----> 5 control_data = pd.read_pickle('null_report.pickle')       6 test_data = pd.read_pickle('test_report.pickle')       7   C:\Users\test\Anaconda3\lib\site-packages\pandas\io\pickle.py in read_pickle(path)      61     except:      62         if PY3: ---> 63             return try_read(path, encoding='latin1')      64         raise  C:\Users\test\Anaconda3\lib\site-packages\pandas\io\pickle.py 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\test\Anaconda3\lib\site-packages\pandas\compat\pickle_compat.py in load(fh, encoding, compat, is_verbose)     114         up.is_verbose = is_verbose     115  --> 116         return up.load()     117     except:     118         raise  C:\Users\test\Anaconda3\lib\pickle.py in load(self)    1037                     raise EOFError    1038                 assert isinstance(key, bytes_types) -> 1039                 dispatch[key[0]](self)    1040         except _Stop as stopinst:    1041             return stopinst.value  C:\Users\test\Anaconda3\lib\pickle.py in load_stack_global(self)    1341         if type(name) is not str or type(module) is not str:    1342             raise UnpicklingError("STACK_GLOBAL requires str") -> 1343         self.append(self.find_class(module, name))    1344     dispatch[STACK_GLOBAL[0]] = load_stack_global    1345   C:\Users\test\Anaconda3\lib\pickle.py in find_class(self, module, name)    1382             elif module in _compat_pickle.IMPORT_MAPPING:    1383                 module = _compat_pickle.IMPORT_MAPPING[module] -> 1384         __import__(module, level=0)    1385         if self.proto >= 4:    1386             return _getattribute(sys.modules[module], name)[0]  ImportError: No module named 'pandas.indexes' 

I also tried loading the pickle file from pickle directly:

via_pickle = pickle.load( open( 'null_report.pickle', "rb" ) )

and got the same error:

--------------------------------------------------------------------------- ImportError                               Traceback (most recent call last) <ipython-input-23-ba2e3adae1c4> in <module>()       1  ----> 2 via_pickle = pickle.load( open( 'null_report.pickle', "rb" ) )       3        4 # control_data = pd.read_pickle('null_report.pickle')       5 # test_data = pd.read_pickle('test_report.pickle')  ImportError: No module named 'pandas.indexes' 
like image 801
Thomas Matthew Avatar asked May 22 '16 06:05

Thomas Matthew


People also ask

How do I fix the Importerror No module named pandas?

Pandas are not a built-in module (it doesn't come with the default python installation) in Python, you need to install it explicitly using the pip installer and then use it. If you are getting an error installing pip checkout pip: command not found to resolve the issue.

Why am I getting no module named pandas?

The Python "ModuleNotFoundError: No module named 'pandas'" occurs when we forget to install the pandas module before importing it or install it in an incorrect environment. To solve the error, install the module by running the pip install pandas command.

Why import pandas is not working?

In most cases this error in Python generally raised: You haven't installed Pandas explicitly with pip install pandas. You may have different Python versions on your computer and Pandas is not installed for the particular version you're using.

How do I fix Python pandas?

Since pandas doesn't come installed automatically with Python, you'll need to install it yourself. The easiest way to do so is by using pip, which is a package manager for Python. In most cases, this will fix the error.


1 Answers

I had this error when I created a pkl file with python 2.7 and was trying to read it with python 3.6 I did:

pd.read_pickle('foo.pkl') 

and it worked

like image 132
ricmarchao Avatar answered Sep 19 '22 14:09

ricmarchao