将矩阵转换为虚拟矩阵

时间:2018-11-23 01:46:55

标签: pandas python-2.7

我已经生成了一个组合列表,并希望将其转换为“假人”矩阵

 import pandas as pd
 from itertools import combinations
 comb = pd.DataFrame(list(combinations(range(1, 6), 4)))

    0 1 2 3
 0  1 2 3 4
 1  1 2 3 5
 2  1 2 4 5
 3  1 3 4 5
 4  2 3 4 5

想将上面的数据框变成下面的数据框。谢谢。

    1 2 3 4 5
 0  1 1 1 1 0
 1  1 1 1 0 1
 2  1 1 0 1 1
 3  1 0 1 1 1
 4  0 1 1 1 1 

1 个答案:

答案 0 :(得分:1)

您可以使用MultiLabelBinarizer

from sklearn.preprocessing import MultiLabelBinarizer

lb = MultiLabelBinarizer()
df = pd.DataFrame(lb.fit_transform(comb.values), columns= lb.classes_)

print (df)

   1  2  3  4  5
0  1  1  1  1  0
1  1  1  1  0  1
2  1  1  0  1  1
3  1  0  1  1  1
4  0  1  1  1  1