DataFrame.Replace (rregex ', regex = True) не работает - PullRequest
1 голос
/ 08 января 2020

У меня есть фрейм данных со столбцом с именами отдельных лиц:

name
Mr. Salmon
Mr Salmon
Ms. Salmon
Mrs. Salmon
Mrs Salmon
...

Я хотел бы удалить все Honififics. Я скомпилировал следующее регулярное выражение на regex101.com и подтвердил все совпадения.

(^[Mm]([Rr]|[Ss]|[Xx]|[Rr][Ss]|[Ii][Ss]+)\.?\s)|(^[Mm][Ii][Ss][Tt][Ee][Rr]\.?\s)|(^[Mm][Ii][Ss]+[Uu][Ss]\.?\s)

Я использую метод замены в именном фрейме данных, чтобы удалить совпадения с ничем. Я использую следующий код:

names_nohf = names.replace(r'(^[Mm]([Rr]|[Ss]|[Xx]|[Rr][Ss]|[Ii][Ss]+)\.?\s)|(^[Mm][Ii][Ss][Tt][Ee][Rr]\.?\s)|(^[Mm][Ii][Ss]+[Uu][Ss]\.?\s)', regex = True)

Это, однако, не возвращает нужные имена и фактически не вносит никаких изменений. Может ли кто-нибудь указать мне правильное направление?

1 Ответ

1 голос
/ 08 января 2020

Использовать пустую строку в качестве нового значения

import pandas as pd

data = {'X': ['Mr A', 'Mr B', 'Mr C']}

df = pd.DataFrame(data)
print(df)

df = df.replace('Mr', '', regex=True)
print(df)

Результат

      X
0  Mr A
1  Mr B
2  Mr C

    X
0   A
1   B
2   C
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...