Python 如何从数据帧生成二进制矩阵?
我有一个df,看起来像这样: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.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)