将特征列表转换为二进制矢量



我有几个功能列表:

feat_lists = [
['f1','f2','f3'],
['f2','f3'],
['f2','f4']
]

我想把它们排列成每行代表一个列表(观察(,每列代表一个特征。因此,值为1/0或True/False,具体取决于该列表中值的存在(观察(。

例如,对于上面的例子,我希望有以下数据帧(如表所示(

f3f4真正确错误错误
f1f2
1
2错误
3错误

通过DataFrame.astype:将MultiLabelBinarizer强制转换为布尔值

from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
df = pd.DataFrame(mlb.fit_transform(feat_lists),columns=mlb.classes_).astype(bool)
print (df)
f1    f2     f3     f4
0   True  True   True  False
1  False  True   True  False
2  False  True  False   True

最新更新