gpt4 book ai didi

python-3.x - 反转 MultiLabelBinarizer 以在列中创建列表

转载 作者:行者123 更新时间:2023-12-05 09:09:45 26 4
gpt4 key购买 nike

在 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 中的确切文档进行操作,但我不确定哪里出错了。我尝试调整一些参数,但我不明白问题出在哪里。

最佳答案

让我们用 str.split 试试 dot

df['labels'] = df.dot(df.columns+',').str[:-1].str.split(',')
0 ["a", "b", "e"]
1 ["c", "e"]
2 ["a"]
3 ["b", "c", "e"]
dtype: object

关于python-3.x - 反转 MultiLabelBinarizer 以在列中创建列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62140886/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com