编程语言
首页 > 编程语言> > python – LabelBinarizer,用于数据框中的多个列

python – LabelBinarizer,用于数据框中的多个列

作者:互联网

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

  

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

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

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

在下一步中,我想将tempdf添加到df并删除原始列df [col].

解决方法:

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

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

否则,您可以使用FunctionUnion和FunctionTransformer,如sklearn pipeline – how to apply different transformations on different columns的答案

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

标签:python,scipy,scikit-learn,sklearn-pandas
来源: https://codeday.me/bug/20190608/1198665.html