2016-03-04 139 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 
相關問題