我有一个带有多个列的熊猫数据框(其中一些不连续),需要对其进行标签编码。根据我对LabelEncoder类的理解,对于每一列,我将需要使用不同的LabelEncoder对象。我正在使用下面的代码(下面的代码中的list_of_string_cols是所有需要标签编码的列的列表)
for col in list_of_string_cols:
labelenc = LabelEncoder()
train_X[col] = labelenc.fit_transform(train_X[col])
test_X[col] = labelenc.transform(test_X[col])
这是正确的方法吗?
答案 0 :(得分:0)
是的,这是正确的。
由于LabelEncoder最初主要用于处理标签而不是功能,因此它一次仅允许一列。
直到当前版本的scikit-learn(0.19.2),您正在使用的是对多列进行编码的正确方法。看到这个问题,它也会做您正在做的事情:
从下一版本(0.20)开始,OrdinalEncoder可用于一次编码所有分类特征列。