python - 转换集到 DataFrame

标签 python pandas dataframe

<分区>

如何将一组类别转换成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_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

关于python - 转换集到 DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65586482/

相关文章:

python - 使用其他数据框中的匹配值在数据框中创建新列

python - 如何解析 csv 文件并根据该数据计算统计信息

R:在 X-Y 网格中查找缺失的组合

python - 在 Python 中重构循环的方法?

python - 我怎样才能优化这个脚本,让它不需要一周的时间就可以完成它正在做的任务? (也使用 BASH PARALLEL。)

python - 有没有办法使用生存时间装饰器来缓存 Python 3.5 定义?

python - 向 django-allauth 的 OAuth token 添加权限

python - 计算 Pandas 分类的 "concentration"

python - 如何按 Python (pandas) 中列中的出现次数对 Dataframe 进行排序

python - 使用 DataFrame 将 IP 地址转换为十进制时 split() 出错