如何对多个不连续的数据框列进行标签编码

时间:2018-09-15 12:54:06

标签: scikit-learn

我有一个带有多个列的熊猫数据框(其中一些不连续),需要对其进行标签编码。根据我对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])

这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

是的,这是正确的。

由于LabelEncoder最初主要用于处理标签而不是功能,因此它一次仅允许一列。

直到当前版本的scikit-learn(0.19.2),您正在使用的是对多列进行编码的正确方法。看到这个问题,它也会做您正在做的事情:

从下一版本(0.20)开始,OrdinalEncoder可用于一次编码所有分类特征列。