Парсинг женских имен в датасете "Titanic"
data['col1'] = data['Name'].str.split(',').str.get(0)
data['col1'].groupby(data['col1']).value_counts()
Есть таблица, в которой нужно выбрать самое популярное женское имя (first name).
Разделение на имя и фамилию есть, также есть и группировка имён. В таблице около 1000 строк.
Как можно сделать фильтр по полу и как вывести имя, которое повторяется больше всего раз?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Задача не совсем тривиальная, как может показаться на первый взгляд. Вот пример женских имен из датасета "Titanic":
Обратите внимание, что у замужних женщин чаще всего после "Mrs." стоит имя мужа, а имя и фамилия женщины располагаются в скобках.
Предлагаю сначала парсить имена замужних женщин из скобок, а потом все оставшиеся:
def parse_first_name_female(name):
first = name.str.extract(r"Mrs\.\s+[^(]*\((\w+)", expand=False)
first.loc[first.isna()] = name.str.extract(r"\.\s+(\w+)", expand=False)
return first
Результат:

