Python 将集合转换为数据帧

Python 将集合转换为数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,如何将一组类别转换为数据帧 例如: A = [{'a', 'c'}, {'a', 'b'}, {'b', 'd'}, {'e'}] 致: 让我们试着分解,然后交叉表: 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

如何将一组类别转换为数据帧

例如:

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


让我们试着分解,然后交叉表:

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
   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
   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

选项2
爆炸
上获取假人

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

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
   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
   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

您可以将单个条目转换为字符串,转换为系列类型,然后应用以获得结果:

pd.Series(["|".join(entry) for entry in A]).str.get_dummies()

    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
结果是