Конвертировать данные из 1 столбца в многократное кодирование - PullRequest
2 голосов
/ 16 апреля 2019

В качестве примера проблемы, предположим, что у нас есть кадр данных:

    Name Class
0   Aci  FB 
1   Dan  TWT
2   Ann  GRS
3   Aci  GRS
4   Dan  FB 

Полученный кадр данных будет df

   Name  FB   TWT  GRS
0  Aci   1    0   1
0  Dan   1    1   0
0  Ann   0    0   1

Ответы [ 2 ]

0 голосов
/ 16 апреля 2019

Вы также можете использовать Series.str.get_dummies и DataFrame.groupby для этого:

df.Class.str.get_dummies().groupby(df['Name']).max().reset_index()

[out]

  Name  FB  GRS  TWT
0  Aci   1    1    0
1  Ann   0    1    0
2  Dan   1    0    1
0 голосов
/ 16 апреля 2019

Используйте get_dummies с DataFrame.set_index и совокупность max или sum:

#always 0,1 in output
df1 = pd.get_dummies(df.set_index('Name')['Class']).max(level=0).reset_index()
#if need count values
#df1 = pd.get_dummies(df.set_index('Name')['Class']).sum(level=0).reset_index()

print (df1)
  Name  FB  GRS  TWT
0  Aci   1    1    0
1  Dan   1    0    1
2  Ann   0    1    0
...