我如何从熊猫数据帧中制作一个二进制矩阵?

时间:2019-05-15 09:11:58

标签: python pandas

我有一个如下所示的df:

> df.head()

    Name     Application
   manager1     word
   manager2     mail
   manager2     internet
   manager1     excel
   manager3     word

我尝试以此创建二进制矩阵,但是找不到解决方案。

Name      excel   internet  mail  word
manager1    1         0       0     1
manager2    0         1       1     0 
manager3    0         0       0     1 

1 个答案:

答案 0 :(得分:1)

get_dummiesmax一起使用:

df1 = pd.get_dummies(df.set_index('Name')['Application']).max(level=0).reset_index()
print (df1)
       Name  excel  internet  mail  word
0  manager1      1         0     0     1
1  manager2      0         1     1     0
2  manager3      0         0     0     1

或聚合为max

df1 = (pd.get_dummies(df, columns=['Application'], prefix='', prefix_sep='')
         .groupby('Name', as_index=False)
         .max())
print (df1)
       Name  excel  internet  mail  word
0  manager1      1         0     0     1
1  manager2      0         1     1     0
2  manager3      0         0     0     1