Search code examples
python-3.xpandasdataframetypeerror

How to treat '<attribute 'dtype' of 'numpy.generic' objects>' error?


After installing pypfopt and u-numpy, dataframe.info() command shows this error.

TypeError: Cannot interpret '<attribute 'dtype' of 'numpy.generic' objects>' as a data type

Solution

  • I happened to mix my versions and I encountered the problem today. I managed to fix it. Both codes in jupyter gave me an error: TypeError: Cannot interpret '<attribute 'dtype' of 'numpy.generic' objects>' as a data type

    df.info() 
    df.categorical_column_name.value_counts().plot.bar()
    

    I got the error: TypeError: Cannot interpret '<attribute 'dtype' of 'numpy.generic' objects>' as a data type

    This is how i fixed it

    Inside jupyter: Check numpy version:

    import numpy as np
    print(np.__version__)
    

    To upgrade:

    !pip3 install numpy --upgrade
    

    Inside Command line check numpy version: python

    import numpy
    print(numpy.__version__)
    

    if versions are not the same choose whether to upgrade/downgrade: To upgrade:

    $pip install numpy --upgrade
    

    To downgrade just specify the version

    If you have python environment installed: Go to the right folder: Check the installed version:

    $pipenv --version
    

    To verify if you have a pip environment installed for that folder: On your terminal Go to the folder and type:

    $pipenv --version
    

    If there is a pipenv it will show the version and if there is none it won't.

    check numpy version

    $python
    >>> import numpy
    #prints the version
    >>> print(numpy__version__)
    

    To upgrade the version:

    >>>exit()
    

    #To install the latest version don't specify the version

    $pipenv install numpy
    

    #if you want to downgrade specify the version

    $pipenv install numpy=version_type
    

    Do the same for pandas. Note that with pandas if your pandas environment is 1.2.3 on the jupyter notebook upgrade with !pip install pandas==1.2.3 or just !pip install pandas --upgrade --user.

    Note that if the commands are giving you an error always include --user at the end of the command.

    To create a new environment using miniconda and install updated packages follow the link [https://pandas.pydata.org/pandas-docs/stable/getting_started/install.html][1]

    Run the following commands from a terminal window:

    1. conda create -n name_of_my_env python This will create a minimal environment with only Python installed in it. To put your self inside this environment run:

    source activate name_of_my_env On Windows the command is: 2. activate name_of_my_env

    The final step required is to install pandas. This can be done with the following command:

    conda install pandas

    To install a specific pandas version:

    1. conda install pandas=0.20.3

    I prefer using the latest version of pandas 1.2.3

    However the first method should solve your problem. Always restart your notebook by closing and reopening it.

    I will stick around to see if you are winning. But this will resolve your problem. The problem is caused by the versions of numpy and pandas [1]: https://pandas.pydata.org/pandas-docs/stable/getting_started/install.html