如何从数据帧生成二进制矩阵?

2024-09-30 22:22:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个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 

Tags: namedfapplication二进制mail矩阵excelhead
1条回答
网友
1楼 · 发布于 2024-09-30 22:22:32

^{}max一起使用:

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

相关问题 更多 >