Панды преобразовывают Серии строк в Серии списков строк (размером 1) для кодирования - PullRequest
0 голосов
/ 06 октября 2018

Я знаю, что название сбивает с толку, но позвольте мне объяснить.Я пытаюсь подготовить Series 'для sklearn.MultiLableBinarizer, где каждая строка представляет собой отдельный идентификатор пользователя, который я хочу горячим кодированием.По ошибке он повторяется по каждому отдельному символу строки.Выполнение series.apply(list) делает то же самое, разбивая каждую строку на отдельные символы.Если серия выглядит следующим образом:

0 '3436803478'
1 '1230782212'
2 '7320482099'
...

Тогда я хочу, чтобы вывод был

0 ['3436803478']
1 ['1230782212']
2 ['7320482099']
...

Вместо

0 ['3','4','3','6','8','0','3','4','7','8']
1 ['1','2','3','0','7','8','2','2','1','2']
2 ['7','3','2','0','4','8','2','0','9','9']
...

Если бы я работал с одним значениемЯ бы просто сделал ids = [[s] for s in values], но поскольку мы работаем с Series и apply(), мне нужно что-то вроде имени функции, но для [].list() не работает, как объяснено здесь

Примечание: строки на самом деле начинаются как целые числа, но я могу обойти это с помощью .apply(str)

1 Ответ

0 голосов
/ 06 октября 2018

Цепочка s.apply(lambda x: [x]) отлично работает.

...