我有一个数据框,我现在将表示df,我获得了如下的ndarray
X = df.iloc [:,5:]。值
我想用于机器学习模型。我需要对X的第12列进行单热编码。
使用sklearn我首先按如下方式编码:
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
labelencoder_x=LabelEncoder()
df[:,12]=labelencoder_x.fit_transform(df[:,12])
这很好用。
接下来,我按照以下方式尝试单热编码
onehotencoder=OneHotEncoder(categorical_features=[12])
X=onehotencoder.fit_transform(X).toarray()
我收到以下错误
ValueError: Input contains NaN, infinity or a value too large for
dtype('float64').
有人可以帮助我吗,我是python编程的新手,我很想知道我做了什么以及如何解决它的问题。我尝试通过查看np.nan是否在第12列并且我得到False进行一些调试,我还检查了第12列中每个元素的类型,它是int。