Фильтр регулярных выражений Python по префиксу - PullRequest
0 голосов
/ 30 апреля 2018

Регулярные выражения немного нелогичны, в этом случае я собираюсь разобраться с ядром в kaggle для Титаника.

Есть поле с именем пассажира

#Looking how the data is and searching for a re patterns
df_train["Name"].head()

Результаты

0                              Braund, Mr. Owen Harris
1    Cumings, Mrs. John Bradley (Florence Briggs Th...
2                               Heikkinen, Miss. Laina

3         Futrelle, Mrs. Jacques Heath (Lily May Peel)

4                             Allen, Mr. William Henry

Name: Name, dtype: object

Затем он создает новую колонку для анализа префикса пользователей

#GettingLooking the prefix of all Passengers
df_train['Title'] = df_train.Name.apply(lambda x: re.search(' ([A-Z][a-z]+)\.', x).group(1))

plt.figure(figsize=(12,5))

#Plotting the result
sns.countplot(x='Title', data=df_train, palette="hls")
plt.xlabel("Title", fontsize=16)
plt.ylabel("Count", fontsize=16)
plt.title("Title Count", fontsize=20)
plt.xticks(rotation=45)
plt.show()

Это создает этот график

enter image description here

учитывая примеры имен, показанных в столбце, они не обязательно начинаются с названия заголовка Mr, Mrs. Так что в общем мне интересно, что создано с помощью этой лямбда-функции

df_train['Title'] = df_train.Name.apply(lambda x: re.search(' ([A-Z][a-z]+)\.', x).group(1))

1 Ответ

0 голосов
/ 30 апреля 2018

Выполняется поиск последовательности символов (первая - заглавная буква), за которой следует, как минимум, заглавная буква ('+'), начинающаяся с пробела и заканчивающаяся точкой (поскольку точка является специальным символом, он использует \ перед этим)

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