Регулярное выражение Python pandas dataframe для извлечения подстроки из объекта

Я создал фрейм данных в python, используя модуль pandas из файла csv. Pandas по умолчанию преобразует строку в тип объекта. Теперь из этой строки я хотел создать еще один столбец, который я пытаюсь создать с помощью регулярного выражения. Однако, поскольку столбец является объектом, я получаю сообщение об ошибке

data = pd.read_csv(r'Desktop\train.csv')
desig = re.search(r'(\w+), (\w+). (\w+)',data['Name']).group(1)

TypeError: ожидаемая строка или буфер

Как я могу извлечь часть из объекта?

Спасибо.


person prasadav    schedule 19.01.2016    source источник
comment
Вы также должны показать нам несколько строк из CSV-файла, чтобы мы могли выяснить, что вы пытаетесь сопоставить.   -  person Tim Biegeleisen    schedule 19.01.2016


Ответы (1)


Вы хотите использовать векторизованные операции, содержащиеся в методах str фрейма данных:

data['desig'] = data['Name'].str.extract(r'(\w+), (\w+). (\w+)')

Это фактически вернет фрейм данных с тремя столбцами, соответствующими трем группам.

person maxymoo    schedule 19.01.2016