在 DataFrame 中编码多个标签

Encode multiple label in DataFrame

给定一个列表列表,其中每个子列表都是一个装满字母的桶,例如:

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'。我想知道如何完成一个功能来做到这一点。

您可以使用 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