Ошибка при создании нового столбца из серии и списка / списка и советов по очистке серий - PullRequest
0 голосов
/ 25 мая 2020

У меня есть фрейм данных со столбцом с названиями должностей и названием компании в одной строке каждой строки df ['Titles'] , у меня также есть список всех возможных названий компаний список заданий

Я пытаюсь создать новый столбец df ['Company'] на основе условия совпадения со списком / серией, но оба варианта не работают из-за того, что я думаю это грязный список / серия

мой список / серия насчитывает около 3000+ имен, и мне интересно, как лучше всего его очистить, используя общее регулярное выражение или что-то еще?

код для список, затем ряд был предоставлен мне пользователем стека и выглядит следующим образом:

df['Company'] = df['Title'].str.contains('|'.join(joblist))

df['Company'] = df['Title'].str.extract(f'({"|".join(joblist)})', expand=False)

ошибки следующие;

Список возвращает: 'ошибка несбалансированная скобка в позиции 8466 '

Серия возвращает:' bad escape \ C at position 9401 '

Я очистил некоторые базовые c вещи, такие как «s», чтобы просто «s» орех все еще получил обе ошибки, любая помощь приветствуется, спасибо!

1 Ответ

1 голос
/ 25 мая 2020

Есть некоторые символы регулярного выражения, поэтому возникла ошибка. Решение - escape-значения на re.escape:

import re

pat = '|'.join(re.escape(x) for x in joblist)

df['Company'] = df['Title'].str.contains(pat)

df['Company'] = df['Title'].str.extract(f'({pat})', expand=False)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...