我對Python和scikit-learn(sklearn)非常陌生,我試圖加載這個由7列屬性和1列數據分類(類/數據目標)組成的數據集。但是有一個屬性由數據[1,2,3,4,5]組成,它實際上標誌着某個事物的某個階段,因此使它成爲一個名義數字,而不是數字。但是,當然python將它識別爲一個數值數據(int64),實際上我希望它被當作一個標稱數據(對象)。如何將列類型更改爲標稱值?如何將Python中的列類型從int更改爲sklearn的對象?
我做了以下工作。
print(data.dtypes)
data["col_name"]=data["col_name"].astype(numpy.object)
print(data.dtypes)
在第一次印刷,它仍然承認我的數據[「COL_NAME」] Int64形式,但astype
行後,它已經改變了它object
。但它對數據沒有任何影響,因爲當我嘗試使用matplotlib
並創建直方圖時,它仍然將X和Y都識別爲數字而不是對象。
另外我已閱讀關於文檔One Hot Encoding
和Label Encoding
的文檔,但我認爲它們不是我需要的。我想知道我是否誤解了某些東西,或者有其他解決方案。
謝謝
嘿,對於遲到的回覆抱歉,我沒有注意到我有一個新的答案。我想試試你的解決方案,但後來我發現data ['class'] = data ['class']。astype(str)'已經工作了,python已經將類列識別爲一個字符串(對象)。我認爲對我來說就足夠了,因爲它是一個班級,而不是一個屬性。但如果我將來遇到類似問題,我會記住您的解決方案。不管怎麼說,還是要謝謝你。 –