Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从数据帧生成二进制矩阵?_Python_Pandas - Fatal编程技术网

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

Python 如何从数据帧生成二进制矩阵?,python,pandas,Python,Pandas,我有一个df,看起来像这样: > df.head() Name Application manager1 word manager2 mail manager2 internet manager1 excel manager3 word 我试着用这个来做一个二元矩阵,但找不到解决方案 Name excel internet mail word manager1 1

我有一个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 
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
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
或使用聚合
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
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
pd.交叉表(df.Name,df.Application)