pandas 对多列应用多标签二进制化器

5ssjco0h  于 2023-02-07  发布在  其他
关注(0)|答案(1)|浏览(116)

我知道如何在一列上应用多标签二值化器,它对我很有效。

import pandas as pd
from sklearn.preprocessing import MultiLabelBinarizer

binarized_df = pd.DataFrame(mlb.fit_transform(df['One']), columns=mlb.classes_, index=df.index)

但是,我有20个不同的列要应用二进制化器,如果我想同时应用到所有列,它就不起作用

cols = ['One', 'Two',...'Twenty'] 
binarized_df = pd.DataFrame(mlb.fit_transform(df[cols]), columns=mlb.classes_, index=df.index)

有没有一种方法可以同时对多个列使用多标签二进制化器?

67up9zun

67up9zun1#

既然sklearn.preprocessing.MultiLabelBinarizer接受classes的一个 * 类似数组 * 的值,那么您是否尝试过将pandas.DataFrame.valuespandas.DataFrame.to_numpy添加到代码中?
类:类似数组的形状(n_classes,),默认值=无

cols = ['One', 'Two',...'Twenty'] 

binarized_df = pd.DataFrame(mlb.fit_transform(df[cols].values), 
                            columns=mlb.classes_, index=df.index)

顺便说一下,pandas.get_dummies可能也适合您:

binarized_df = pd.get_dummies(df[cols], columns=mlb.classes_, index=df.index)

相关问题