панды получают манекены для колонки со списком - PullRequest
0 голосов
/ 25 ноября 2018

Ввод: -

empNo         name    

1234         [ AB, DE ] 
5678         [ FG, IJ ] 

Команда: -

dataFrame = dataFrame.join(dataFrame.name.str.join('|').str.get_dummies().add_prefix('dummy_name_'))

Приведенная выше команда выводит пустышку "для каждого символа имени столбца"

Вывод: -

empNo         name              dummy_name_A        dummy_name_B     dummy_name_D     dummy_name_E  dummy_name_F    dummy_name_G    dummy_name_I    dummy_name_J

1234         [ AB, DE ]             1                   1               1                   1           0               0               0               0
5678         [ FG, IJ ]             0                   0               0                   0           1               1               1               1

Ожидаемое: -

empNo         name              dummy_name_AB       dummy_name_DE    dummy_name_FG  dummy_name_IJ   

1234         [ AB, DE ]             1                   1                   0               0               
5678         [ FG, IJ ]             0                   0                   1               1   

1 Ответ

0 голосов
/ 25 ноября 2018

Я думаю, что список - это не список, поэтому мы используем ast для преобразования столбца строкового типа обратно в список

import ast

df.name=df.name.apply(ast.literal_eval)

Затем с помощью str get_dummies

s=df.name.apply(pd.Series).stack().str.get_dummies().sum(level=0).add_prefix('dummy_name_')
s
   dummy_name_AB  dummy_name_DE  dummy_name_FG  dummy_name_IJ
0              1              1              0              0
1              0              0              1              1

Затем

pd.concat([df[['empNo']],s],axis=1)

Ввод данных

df.to_dict()
{'empNo': {0: 1234, 1: 5678}, 'name': {0: ['AB', 'DE'], 1: ['FG', 'IJ']}}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...