LabelEncoder不会将字符串转换为数字(0,1,2)

时间:2019-05-07 07:34:29

标签: python python-3.x machine-learning xgboost

enter image description here我有如下数据,我需要对变量进行编码,但是LabelEncoder不对字符串进行编码

我的数据如下所示

Delivery_class
First Class
Same Day
Second Class
Standard Class

X=filtered_df.iloc[:, 1]
labelencoder_X = LabelEncoder()
X.values[:,1] = labelencoder_X.fit_transform(X.values[:,1].astype(str))

即使在运行abovr代码之后,字符串也保持不变。

请咨询,我是XGBoost的初学者

1 个答案:

答案 0 :(得分:1)

请勿分配回X.values。使用X.iloc

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
X.iloc[:, 1] = le.fit_transform(X.values[:, 1].astype(str))

输出:

   Index  Ship_Mode
0      0          0
1      1          0
2      2          1
3      3          1
4      4          0
5      5          2