今天做等頻離散化實驗時出現錯誤嗎,代碼如下:
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)
這種方法也是可行的,以上就是解決的方法。