如何将列名称数组转换为pandas Dataframe?

时间:2016-03-04 08:09:32

标签: python pandas

我有一堆数据代表大型集合的选择和分类。类似的东西:

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

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

这样的东西
ham  cheese ...  feta
1      1          0
0      1          1
0      0          1
 ...

(显然会有更多的列和行,但你会得到一般的想法。)

这样做的最佳方式是什么?

1 个答案:

答案 0 :(得分:2)

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

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