转换集到数据帧
如何将一组类别转换为 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
选项 2:get_dummies在explode:
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