LabelBinarizer用于数据框中的多个列

Aks*_*nde 5 python scipy scikit-learn sklearn-pandas

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

样本数据

基本上我想要将标签二值化并将它们添加到数据帧中.

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

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

在接下来的步骤,我想加入tempdfdf并删除原始列DF [COL].

max*_*moo 7

您可以在单行中执行此操作pd.get_dummies:

tempdf = pd.get_dummies(df, columns=categorylist)
Run Code Online (Sandbox Code Playgroud)

否则,你可以使用FeatureUnionFunctionTransformer在答案,sklearn管道-如何在不同的列应用不同的转换

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

  • 您还可以使用sklearn-pandas包,其目的是能够对每个数据帧列应用不同的转换. (2认同)