Как извлечь строки из столбца в python - PullRequest
0 голосов
/ 25 мая 2020

У меня есть столбец, содержащий имена клиентов. Теперь я хочу создать еще один столбец, который должен содержать только следующие заголовки: ((Мистер), (Миссис), (Доктор))

Мой столбец похож на:

print(df['Name'])

        Name
0 William, Mr. Henry
1 Mrs Meryam Hinadi
2 Dr. Richard Barodi
3 Yadar Danari Mr.
4 Gadi Dr. Nawsi

Я определил эту функцию, но она работает некорректно. Я, должно быть, чего-то упускаю. поправьте меня, пожалуйста.

def get_status(cols):
        name = cols[0]

        if name == name.str.contains('Mrs'):
            return 'Mrs'
        elif name == name.str.contains('Mr.'):
            return 'Mr.'
        elif name == name.str.contains('Dr.'):
            return 'Dr.'
        else:
            return name

df['Titles'] = df['Name'].apply(get_status)

Спасибо.

1 Ответ

2 голосов
/ 25 мая 2020

Попробуйте это:

def get_status(cols):
    if ('Mrs') in cols:
        return 'Mrs'
    elif ('Mr.') in cols:
        return 'Mr.'
    elif ('Dr.') in cols:
        return 'Dr.'
    else:
        return cols

df['Titles'] = df['name'].apply(get_status)

Вывод:

    name               Titles
0   William, Mr. Henry  Mr.
1   Mrs Meryam Hinadi   Mrs
2   Dr. Richard Barodi  Dr.
3   Yadar Danari Mr.    Mr.
4   Gadi Dr. Nawsi      Dr.  
...