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