我在处理数据集中的’分类数据’时使用了LabelEncoder和OneHotEncoder。我的数据集中有一个列可以有两个值,要么是’Petrol’要么是’Diesel’,我想对该列进行编码。我运行了这段代码,但出现了错误。
import numpy as npimport pandas as pdfrom sklearn.preprocessing import LabelEncoder,OneHotEncoderdataset = pd.read_csv('ToyotaCorolla.csv')X = dataset.iloc[:, 1:10].valuesy = dataset.iloc[:, 0].valueslabelencoder_X = LabelEncoder()X[:, 3] = labelencoder_X.fit_transform(X[:, 3])onehotencoder = OneHotEncoder(categorical_features = [3])X = onehotencoder.fit_transform(X).toarray()
第3列是包含分类值的列。但是它显示了一个错误”ValueError: could not convert string to float: ‘Diesel'”。我不知道哪里出错了。请帮助我。谢谢!
回答:
categorical_features
已被弃用,建议直接转换您的分类特征
onehotencoder = OneHotEncoder(categories='auto')feature = onehotencoder.fit_transform(X[:, 3].reshape(-1, 1))