2016-03-04 138 views
2

我有一堆数据表示来自大集合和分类的选择。就像:如何将列名称数组转换为熊猫数据框?

pizzas = [ 
['ham','cheese','pineapple'], 
['bacon','feta','cheese'], 
['mushrooms','feta','ham], 
... 
] 

我想把它变成一个数据框,每个顶级类型有一列,每个比萨饼有一行。像

ham cheese ... feta 
1  1   0 
0  1   1 
0  0   1 
... 

东西(当然也会有更多的行和列,但你的总体思路。)

什么是做到这一点的最好方法是什么?

回答

2

你可以先尝试创建构造DataFrame,然后按列和sum使用get_dummies和最后groupby

import pandas as pd 

pizzas = [ 
['ham','cheese','pineapple'], 
['bacon','feta','cheese'], 
['mushrooms','feta','ham'] 
] 

df = pd.DataFrame(pizzas) 
print df 
      0  1   2 
0  ham cheese pineapple 
1  bacon feta  cheese 
2 mushrooms feta  ham 

df = pd.get_dummies(df, prefix_sep='', prefix='') 
print df 
    bacon ham mushrooms cheese feta cheese ham pineapple 
0  0 1   0  1  0  0 0   1 
1  1 0   0  0  1  1 0   0 
2  0 0   1  0  1  0 1   0 

print df.groupby(df.columns, axis=1).sum() 
    bacon cheese feta ham mushrooms pineapple 
0  0  1  0 1   0   1 
1  1  1  1 0   0   0 
2  0  0  1 1   1   0 
相关问题