panda преобразовать столбец в список и добавить новый столбец - PullRequest
0 голосов
/ 12 декабря 2018

Новое в Python.Я пытаюсь преобразовать столбец C в список и добавить его в качестве дополнительного столбца D в df.Я попробовал list () это работает для отдельных сырых.Но это не работает для всего столбца C в df.Мне нужна подсказка / помощь для продвижения вперед.

Ввод

A   B   C 
----------------
1  21  12457643  
2  32  34576543  
3  41  23456789

Ввод

A   B   C              D
------------------------------------
1  21  12457643   [1,2,4,5,7,6,4,3]  
2  32  34576543   [3,4,5,7,6,5,4,3]  
3  41  23456789   [2,3,4,5,6,7,8,9]

Ответы [ 2 ]

0 голосов
/ 12 декабря 2018

Использование findall

df.C.astype(str).str.findall(r'(.)')
0    [1, 2, 4, 5, 7, 6, 4, 3]
1    [3, 4, 5, 7, 6, 5, 4, 3]
2    [2, 3, 4, 5, 6, 7, 8, 9]
Name: C, dtype: object
0 голосов
/ 12 декабря 2018

В общем, хранение списков в столбцах панд не очень хорошая идея.Но если вы настаиваете, преобразуйте числа в строки, а затем в списки символов:

df['D'] = df['C'].astype(str).apply(list)
#0    [1, 2, 4, 5, 7, 6, 4, 3]
#1    [3, 4, 5, 7, 6, 5, 4, 3]
#2    [2, 3, 4, 5, 6, 7, 8, 9]

Результатом будет список символов.Если вы хотите получить список из однозначных чисел, вам нужно применить пользовательскую функцию через lambda:

df['D'] = df['C'].astype(str).apply(lambda x: list(map(int, x)))
#0    [1, 2, 4, 5, 7, 6, 4, 3]
#1    [3, 4, 5, 7, 6, 5, 4, 3]
#2    [2, 3, 4, 5, 6, 7, 8, 9]
...