【发布时间】:2020-09-20 06:22:06
【问题描述】:
在 Python3 中,我有一个多标签二进制数据格式的起始数据框:
df1:
"a" "b" "c" "d" "e"
1 1 0 0 1
0 0 1 0 1
1 0 0 0 0
0 1 1 0 1
我需要实现的是:
df2:
"a" "b" "c" "d" "e" "labels"
1 1 0 0 1 ["a", "b", "e"]
0 0 1 0 1 ["c", "e"]
1 0 0 0 0 ["a"]
0 1 1 0 1 ["b", "c", "e"]
首先,我尝试使用来自 sklearn 的 MultiLabelBinarizer 的 inverse_transform() 函数,该函数基于之前的堆栈 question。
from sklearn.preprocessing import MultiLabelBinarizer
mlb = MultiLabelBinarizer()
mlb.fit(df1.columns)
mlb.inverse_transform(df1.values)
ValueError: Expected indicator for 15 classes, but got 5
我尝试遵循来自 sklearn 的确切文档,但我不确定我哪里出错了。我尝试调整了一些参数,但我不明白问题是什么。
【问题讨论】:
-
姗姗来迟的另一种方法
标签: python-3.x pandas scikit-learn