如何在pandas中转换分类数据帧

时间:2017-02-13 14:28:11

标签: python pandas

我的数据框位于

之下
Sex type 
M    A  
W    B
W    A
M    C

我想得到以下结果

M W A B C
1 0 1 0 0
0 1 0 1 0
0 1 1 0 0
1 0 0 0 1

我试过

df['Sex','type'].get_dummies()

但是效果不好。

我怎样才能得到这个结果?

1 个答案:

答案 0 :(得分:3)

我似乎需要pandas.get_dummies

print (pd.get_dummies(df, prefix_sep='', prefix=''))
   M  W  A  B  C
0  1  0  1  0  0
1  0  1  0  1  0
2  0  1  1  0  0
3  1  0  0  0  1

此外,如果列groupbyaxis=1以及汇总level=0需要列名称中的某些重复项max

print (pd.get_dummies(df, prefix_sep='', prefix='').groupby(axis=1, level=0).max())
   A  B  C  M  W
0  1  0  0  1  0
1  0  1  0  0  1
2  1  0  0  0  1
3  0  0  1  1  0