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

拼搏现实的明天。 2022-08-29 09:41 88阅读 0赞

文章目录

      • 问题描述
      • 问题原因
      • 问题解决
        • 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

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

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

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

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

  1. pip show numpy
  2. pip show pandas

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

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

  1. import pandas as pd
  2. import numpy as np
  3. print(np.__version__)
  4. 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

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

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

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

step3:重启jupyter

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

image-20210801112848288

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

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

image-20210801114025952

参考文档

[1] 报错原因

发表评论

表情:
评论列表 (有 0 条评论,88人围观)

还没有评论,来说两句吧...

相关阅读