天天看点

使用pandas画图报错Cannot interpret ‘attribute ‘dtype‘ of ‘numpy.generic‘ objects‘ as a data type

文章目录

      • 问题描述
      • 问题原因
      • 问题解决
        • step 1:尝试使用pip命令直接更新numpy 和pandas
        • step2:进入本地python的目录打开cmd
        • step3:重启jupyter
      • 参考文档

问题描述

在使用pandas内置的函数画饼图时,发现报了如上的错误,并且困扰了很久。本以为是pandas没有这个函数,特意查询了api后,发现并不是这个问题

问题原因

通过查阅文档,用一句话总结这个问题的原因,就是numpy和pandas的版本过于陈旧,升级到最新版本就可以解决这个问题

问题解决

在问题解决阶段,也遇到了问题。本机的情况是:安装了jupyter notebook、jupyter lab、以及一个python3.7.3的编辑器、anaconda。anaconda中自带了一个python3.8的编辑器。

step 1:尝试使用pip命令直接更新numpy 和pandas

pip install numpy --upgrade --user
pip install pandas --upgrade --user
# --user看情况加,如果cmd提示我们要加,就加上
           

特别注意查看控制台输出的提示信息,看看更新后的这两个包是不是我们jupyter所在python环境的包。

我遇到了一个问题,直接使用pip更新的时候,尽管本地python的Path设置排到了第一个,但pip更新的是anaconda下的numpy和pandas。

这个问题是怎么发现的呢?使用pip命令查看版本

pip show numpy
pip show pandas
           

此时控制台输出的numpy版本是1.3.1,pandas版本是1.21.1

而我在cmd中输入python进入python环境时,使用如下命令:

import pandas as pd
import numpy as  np
print(np.__version__)
print(pd.__version__)
           

此时控制台输出的numpy版本是1.20.1,pandas版本是0.24.2

step2:进入本地python的目录打开cmd

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-13OsSFyN-1627789316453)(https://i.loli.net/2021/08/01/XydmSWuczVh1kLq.png)]

使用如下命令更新numpy 和 pandas

python -m pip install --upgrade numpy --user
python -m pip install --upgrade pandas --user
# --user看情况加,如果cmd提示我们要加,就加上
           

此时,再打开python ,导入这两个包之后查看这两个包的版本,发现已经是最新了

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2E9JqIKS-1627789316455)(https://i.loli.net/2021/08/01/c1o8mYrqK4wtbZN.png)]

step3:重启jupyter

这里的重启并不是按下jupyter的下面这个按钮

使用pandas画图报错Cannot interpret ‘attribute ‘dtype‘ of ‘numpy.generic‘ objects‘ as a data type

而是直接关掉,再用命令打开jupyter。

这样,再次执行时,就不会再报这个错了

使用pandas画图报错Cannot interpret ‘attribute ‘dtype‘ of ‘numpy.generic‘ objects‘ as a data type

参考文档

[1] 报错原因