天天看點

使用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] 報錯原因