解決:Input array must be 1 dimensional


今天做等頻離散化實驗時出現錯誤嗎,代碼如下:

col20 =df.loc[:,['col20']]  #提取特征col20的數據
col20
col20_ = pd.qcut(col20,5)  #對其進行等頻離散化
col20_

 報錯信息:

Input array must be 1 dimensional

 解決方法:

報錯含義是數組必須是一維的,我們發現提取出的col20數據是一個二維的

 

 

 這時我們就需要將數據維度轉換至一維,使用flatten()函數即可完成

修改之后的代碼

col20 =df.loc[:,['col20']]
col20 = col20.values.flatten()
print(col20.ndim)
col20_ = pd.qcut(col20,5)
col20_

 運行結果就成功了

還有一種辦法就是使用for循環,代碼如下

col20 =df.loc[:,['col20']]
col20
for i in col20.columns:
    x = pd.qcut(col20[i],5)
    print(x)

這種方法也是可行的,以上就是解決的方法。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM