9
votes

I wrote this code to load a dataset into a data frame. Dataset is given in a pickle file but it throws an error:

ModuleNotFoundError: No module named 'pandas.core.indexes'

import pickle
import pandas
dbfile = open(dataset loction,'rb')
df = pickle.load(dbfile)

I tried all the fixes given:

  1. Updated the pandas
  2. used df = pandas.read_picle(dataset location)

Tried installing pickle using pip but getting this error

C:\installs\WinPython-64bit-3.6.1.0Qt5\python-3.6.1.amd64>python -m pip install pickle
Collecting pickle
  Could not find a version that satisfies the requirement pickle (from versions: )
No matching distribution found for pickle
3
Please provide error details of the code. since its confusing with the title.Mr. J
This is the complete error i am getting :ModuleNotFoundError Traceback (most recent call last) <ipython-input-14-2a34c4ce9aec> in <module>() 2 import pandas 3 dbfile = open(r'C:\Users\raman\Downloads\df_train_api.pk','rb') ----> 4 df = pickle.load(dbfile) 5 6 df ModuleNotFoundError: No module named 'pandas.core.indexes'RAMAN BHATIA
We need to see the real implementation because the line dbfile = open(dataset loction,'rb') makes no sense and we can't tell if that's the source of error or if it's properly implementedYuca
I have a dataset named df_train_api.pk that is stored in my downloads folder, I am using this specific code: import pickle import pandas dbfile = open(r'C:\Users\raman\Downloads\df_train_api.pk','rb') df = pickle.load(dbfile) dfRAMAN BHATIA

3 Answers

14
votes

That smells like the pickle file has been created with a different version of Pandas, and your currently installed Pandas doesn't have the pandas.core.indexes module that some of the data in the pickle requires.

Which version of Pandas are you using? Have you tried upgrading?

EDIT: Pandas 0.19.2 does not have that module:

$ pip install pandas==0.23.3
$ python
>>> import pandas.core.indexes as i
>>>
$ pip install pandas==0.19.2
$ python
>>> import pandas.core.indexes as i
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pandas.core.indexes'
>>>
1
votes

I would suggest using pandas pickle method to read .pk file.

import _pickle as cPickle
with open('filename.pkl', 'rb') as fo:
        dict = cPickle.load(fo, encoding='latin1’)

see doc here. Pickle Read

1
votes

The answer by @AKX made me realise that it was probably a version problem Pandas. However, I only needed to upgrade.

pip install pandas --upgrade