ImportError: cannot import name 'ABCIndexClass' from 'pandas.core.dtypes.generic'
Question:
I have this output :
[Pandas-profiling] ImportError: cannot import name ‘ABCIndexClass’ from ‘pandas.core.dtypes.generic’
when trying to import pandas-profiling in this fashion :
from pandas_profiling import ProfileReport
It seems to import pandas-profiling correctly but struggles when it comes to interfacing with pandas itself. Both libraries are currently up to date through conda. It doesn’t seem to match any of the common problems associated with pandas-profiling as per their documentation, and I can’t seem to locate a more general solution of importing the name ABCIndexClass
.
Thanks
Answers:
Pandas v1.3 renamed the ABCIndexClass
to ABCIndex
. The visions
dependency of the pandas-profiling
package hasn’t caught up yet, and so throws an error when it can’t find ABCIndexClass
. Downgrading pandas to the 1.2.x series will resolve the issue.
Alternatively, you can just wait for the visions
package to be updated.
Thanks to the @aflyingtoaster’s answer, the following workaround has worked fine for me:
- Edit the file "~/[your_conda_env_path]/lib/site-packages/visions/dtypes/boolean.py"
- Find the row "from pandas.core.dtypes.generic import ABCIndexClass, ABCSeries" and just replace ABCIndexClass for ABCIndex.
- Save the boolean.py file and enjoy your report!
ABCIndexclass to ABCIndex
go to user>annaconda 3>Lib> site package > visions > dtypes > boolean.py
open boolean.py in words
go to line where it says ABCIndexclass and change it to ABCIndex
If you are using Anaconda distribution, another solution is to first update
conda update --all
Then delete every folder related to pandas_profiling at ~/[your_conda_env_path]/Lib/site-packages/
.
For example:
- pandas_profiling
- pandas_profiling-1.4.1-py2.7.egg-info
- …
Later, use this CLI to install the package
conda install -c conda-forge pandas-profiling
It worked for me while using https://repo.anaconda.com/archive/Anaconda3-2021.11-Windows-x86_64.exe
For MacOS users, this was the path I needed:
/opt/anaconda3/pkgs/visions-0.5.0-pyhd3eb1b0_0/site-packages/visions/dtypes/boolean.py
Removing ‘index’ from ‘ABCClassIndex’ worked for me as well.
The issue is with pandas 1.3.x
.
Alternatively downgrade the pandas package to 1.2.x
.
You can do that from Anaconda Navigator
. Go to Environments
and downgrade pandas package.
This worked for me.
I had this issue in colab and none of the previous answers covered that environment, so I’d like to share what works for me – !pip install https://github.com/ydataai/pandas-profiling/archive/master.zip
which just simply install the latest pandas-profiling instead of the default one or 2.7.1 etc
Just installed the "visions" package and it fixed for me.
pip install visions
For colab user you can try upgrading to the 3.4.0
!pip install pandas-profiling==3.4.0
The issue is resolved in this version
I have this output :
[Pandas-profiling] ImportError: cannot import name ‘ABCIndexClass’ from ‘pandas.core.dtypes.generic’
when trying to import pandas-profiling in this fashion :
from pandas_profiling import ProfileReport
It seems to import pandas-profiling correctly but struggles when it comes to interfacing with pandas itself. Both libraries are currently up to date through conda. It doesn’t seem to match any of the common problems associated with pandas-profiling as per their documentation, and I can’t seem to locate a more general solution of importing the name ABCIndexClass
.
Thanks
Pandas v1.3 renamed the ABCIndexClass
to ABCIndex
. The visions
dependency of the pandas-profiling
package hasn’t caught up yet, and so throws an error when it can’t find ABCIndexClass
. Downgrading pandas to the 1.2.x series will resolve the issue.
Alternatively, you can just wait for the visions
package to be updated.
Thanks to the @aflyingtoaster’s answer, the following workaround has worked fine for me:
- Edit the file "~/[your_conda_env_path]/lib/site-packages/visions/dtypes/boolean.py"
- Find the row "from pandas.core.dtypes.generic import ABCIndexClass, ABCSeries" and just replace ABCIndexClass for ABCIndex.
- Save the boolean.py file and enjoy your report!
ABCIndexclass to ABCIndex
go to user>annaconda 3>Lib> site package > visions > dtypes > boolean.py
open boolean.py in words
go to line where it says ABCIndexclass and change it to ABCIndex
If you are using Anaconda distribution, another solution is to first update
conda update --all
Then delete every folder related to pandas_profiling at ~/[your_conda_env_path]/Lib/site-packages/
.
For example:
- pandas_profiling
- pandas_profiling-1.4.1-py2.7.egg-info
- …
Later, use this CLI to install the package
conda install -c conda-forge pandas-profiling
It worked for me while using https://repo.anaconda.com/archive/Anaconda3-2021.11-Windows-x86_64.exe
For MacOS users, this was the path I needed:
/opt/anaconda3/pkgs/visions-0.5.0-pyhd3eb1b0_0/site-packages/visions/dtypes/boolean.py
Removing ‘index’ from ‘ABCClassIndex’ worked for me as well.
The issue is with pandas 1.3.x
.
Alternatively downgrade the pandas package to 1.2.x
.
You can do that from Anaconda Navigator
. Go to Environments
and downgrade pandas package.
This worked for me.
I had this issue in colab and none of the previous answers covered that environment, so I’d like to share what works for me – !pip install https://github.com/ydataai/pandas-profiling/archive/master.zip
which just simply install the latest pandas-profiling instead of the default one or 2.7.1 etc
Just installed the "visions" package and it fixed for me.
pip install visions
For colab user you can try upgrading to the 3.4.0
!pip install pandas-profiling==3.4.0
The issue is resolved in this version