Идентификация пола по именам
Есть база Excel. Один из столбцов список имен.
Стоит задача сделать из списка имен еще один столбец, который добавляет пол напротив каждого имени.
Чтобы далее презентовать статистику по полу клиентов.
Пробую через библиотеку pymorphy2, но не работает.
Изучение языка только начал, поэтому могу не понимать где-то логику кода.
Помогите с вопросом, плз
Предыдущая тема определения пола по фио не подходит к решению
name_list = df['Manager']
def pol(name_list):
for name in name_list:
parsed_word = morph.parse(name)[0]
table_pol = parsed_word
return table_pol
Ответы (2 шт):
Добавить новый столбец к Pandas DataFrame очень просто - присваиваем столбцу с новым именем список значений такой же длины как и количество строк во фрейме:
In [156]: df = pd.DataFrame({"a":[1,2,3], "b":[4,5,6]})
In [157]: df
Out[157]:
a b
0 1 4
1 2 5
2 3 6
In [158]: df["new"] = [12,13,14]
In [159]: df
Out[159]:
a b new
0 1 4 12
1 2 5 13
2 3 6 14
NOTE: вместо списка можно использовать одномерный вектор numpy.ndarray или Pandas Series.
PS для того, чтобы определить пол человека по имени, советую воспользоваться одним из ответов, данных на вопрос "Определение пола по ФИО".
Python отложите в сторону для более сложных задач Используйте формулу
=ЕСЛИ(ПРОПИСН(ПРАВ(A2;1))="А";"жен.";"муж.")
=IF(UPPER(RIGHT(A2;1))="А";"жен.";"муж.")
Ошибки, безусловно, возможны, но при достаточно большой выборке результат не должен существенно повлиять на статистику.
Суть фокуса в том, что придумать женское отчество не заканчивающееся на "а" довольно сложно. В исходных данных они могут появиться в виде опечаток.