2 回答

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超8個(gè)贊
您必須先清空缺失值。handle_unknown='ignore'不涉及 NaN 值,但不涉及新類(lèi)別ohe。
您可以將 NaN 視為一個(gè)不同的類(lèi)別,如下所示:
train = train.fillna("NaN")
test = test.fillna("NaN")

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超7個(gè)贊
我不知道該函數(shù)的用途,但運(yùn)行代碼并查看結(jié)果告訴我以下信息:
您收到的 ValueError 告訴您,該函數(shù)需要數(shù)字?jǐn)?shù)據(jù) - 而不是字符串。
另請(qǐng)注意,“handle_unknown”標(biāo)志并不意味著該函數(shù)采用 None 或 nan 值,而是管理如何處理測(cè)試數(shù)據(jù)中不存在于訓(xùn)練數(shù)據(jù)中的類(lèi)別(參見(jiàn)下面的示例)。
以下包括未知類(lèi)別的代碼正在運(yùn)行:
import pandas as pd
import numpy as np
from sklearn.preprocessing import OneHotEncoder
train = pd.DataFrame({
'users':[1,2,3,4],'users2':[1,2,3,4]
})
test = pd.DataFrame({
'users':[0,1,3,4,10],'users3':[1,2,3,4,5]
})
ohe = OneHotEncoder(sparse=False,handle_unknown='ignore')
ohe.fit(train)
train_transformed = ohe.fit_transform(train)
test_transformed = ohe.transform(test)
print(test_transformed)
希望有幫助。替換缺失數(shù)據(jù)的工作類(lèi)似于先前答案所建議的。
添加回答
舉報(bào)