转换集到数据帧

如何将一组类别转换为 DataFrame?

例如:

A = [{'a', 'c'}, {'a', 'b'}, {'b', 'd'}, {'e'}]

到:

    'a', 'b', 'c', 'd', 'e'
1    1 ,  0 ,  1 ,  0 ,  0 
2    1 ,  1 ,  0 ,  0 ,  0 
3    0 ,  1 ,  0 ,  1 ,  0 
4    0 ,  0 ,  0 ,  0 ,  1  

回答

让我们尝试explode那么crosstab

s = pd.Series(A).explode()
pd.crosstab(s.index, s)

输出:

col_0  a  b  c  d  e
row_0               
0      1  0  1  0  0
1      1  1  0  0  0
2      0  1  0  1  0
3      0  0  0  0  1

选项 2get_dummiesexplode

pd.get_dummies(pd.Series(A).explode()).sum(level=0)

输出:

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


以上是转换集到数据帧的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>