在数据框中对多个标签进行编码

3

给定一个列表,其中每个子列表是填充有字母的桶,例如:

L=[['a','c'],['b','e'],['d']]

我想将每个子列表编码为我的DataFrame中的一行,如下所示:

    a   b   c   d   e
0   1   0   1   0   0
1   0   1   0   0   1
2   0   0   0   1   0

假设这个字母范围只从'a'到'e'。我想知道如何完成一个函数来实现这一点。

1个回答

4
您可以使用sklearn库:
import pandas as pd
from sklearn.preprocessing import MultiLabelBinarizer

L = [['a', 'c'], ['b', 'e'], ['d']]

mlb = MultiLabelBinarizer()

res = pd.DataFrame(mlb.fit_transform(L),
                   columns=mlb.classes_)

print(res)

   a  b  c  d  e
0  1  0  1  0  0
1  0  1  0  0  1
2  0  0  0  1  0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接