5

我有一个 csv 文件,它有 25 列,有些是数字的,有些是分类的,有些是演员、导演的名字。我想对这些数据使用回归模型。为此,我必须使用 scikit 包中的 LabelBinarizer 将分类列字符串类型转换为数值。如何在此具有多个分类数据的数据帧上使用 LabelBinarize?

样本数据

本质上,我想对标签进行二值化并将它们添加到数据框中。

在下面的代码中,我检索了要二值化的列列表,但无法弄清楚如何将新列添加回 df?

categorylist = ['color', 'language', 'country', 'content_rating']
for col in categorylist:
    tempdf = label_binarizer.fit_transform(df[col])

在下一步中,我想添加tempdfdf删除原始列 df[col]。

4

1 回答 1

7

您可以使用以下方式在单行中执行此操作pd.get_dummies

tempdf = pd.get_dummies(df, columns=categorylist)

否则,您可以在 sklearn 管道的答案中使用FeatureUnionwith as - 如何在不同的列上应用不同的转换FunctionTransformer

编辑:正如@dukebody 在评论中添加的那样,您还可以使用sklearn-pandas包,其目的是能够对每个数据框列应用不同的转换。

于 2016-11-07T22:12:46.590 回答