Создание столбца Pandas на основе значений другого столбца с использованием функции - PullRequest
0 голосов
/ 13 февраля 2020

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

doctorcriteria = ['Dr', 'dr']

def doctor(x):
  if doctorcriteria in x:
    return 'Doctor'
  else:
    return 'Not a doctor'

df['doctorcall'] = df.caller_name
df.doctorcall.fillna('Not a doctor', inplace=True)
df.doctorcall = df.doctorcall.apply(doctor)

1 Ответ

2 голосов
/ 13 февраля 2020

Чтобы создать новый столбец с функцией, вы можете использовать apply:

df = pd.DataFrame({'Title':['Dr', 'dr', 'Mr'],
               'Name':['John', 'Jim', 'Jason']})

doctorcriteria = ['Dr', 'dr']

def doctor(x):
    if x.Title in doctorcriteria:
        return 'Doctor'
    else: return 'Not a doctor'

df['IsDoctor'] = df.apply(doctor, axis=1)

Но более прямым путем к ответу будет использование map в столбце Title.

doctor_titles = {'Dr', 'dr'}

df['IsDoctor'] = df['Title'].map(lambda title: title in doctor_titles)
...