pandas не перезаписывать поля столбца при использовании str.extract - PullRequest
0 голосов
/ 04 марта 2020

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

11100501   bank name CTA CTE 014097729
11200502   AHORROS bank name 0550470100002042

Я хочу извлечь 'CTA CTE' или 'AHORROS' в новый столбец в зависимости от регистра.

Я пробуя это:

df['new_column'] = df['new_column'].str.extract(r'(CTA CTE)')
df['new_column'] = df['new_column'].str.extract(r'(AHORROS)')

, но вторая строка кода переписывает в 'nan' поля, которым уже назначен требуемый 'CTA CTE'

Я могу сделать это путем итерации строк, но я в поисках более pandasti c и эффективного решения

1 Ответ

0 голосов
/ 04 марта 2020

Предполагая, что у вас может быть только один из этих 2 в строке:

df['new_column'] = df['new_column'].str.replace(r'.*((AHORROS)|(CTA CTE))|(.*).*', r'\1', regex=True)

Выходы:

#original:
          x           new_column                 y
0  11100501    bank name CTA CTE         014097729
1  11200502    AHORROS bank name  0550470100002042
2        23  something something              4678

#after replacement:
          x new_column                 y
0  11100501    CTA CTE         014097729
1  11200502    AHORROS  0550470100002042
2        23                         4678
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...