Я пытаюсь написать функцию с логикой if-else, которая изменит два столбца в моем фрейме данных.Но это не работает.Ниже моя функция
def get_comment_status(df):
if df['address'] == 'NY':
df['comment'] = 'call tomorrow'
df['selection_status'] = 'interview scheduled'
return df['comment']
return df['selection_status']
else:
df['comment'] = 'Dont call'
df['selection_status'] = 'application rejected'
return df['comment']
return df['selection_status']
, а затем выполнить функцию как:
df[['comment', 'selection_status']] = df.apply(get_comment_status, axis = 1)
Но я получаю ошибку.Что я делаю неправильно ?Я думаю, что, вероятно, синтаксис df.apply () неправильный
Сообщение об ошибке:
TypeError: объект 'str' не может быть интерпретирован как целое число KeyError :( 'address','произошло с индексом 0')
пример кадра данных:
df = pd.DataFrame({'address': ['NY', 'CA', 'NJ', 'NY', 'WS', 'OR', 'OR'],
'name1': ['john', 'mayer', 'dylan', 'bob', 'mary', 'jake', 'rob'],
'name2': ['mayer', 'dylan', 'mayer', 'bob', 'bob', 'tim', 'ben'],
'comment': ['n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a', 'n/a'],
'score': [90, 8, 88, 72, 34, 95, 50],
'selection_status': ['inprogress', 'inprogress', 'inprogress', 'inprogress', 'inprogress', 'inprogress', 'inprogress']})
Я также думал об использовании лямбда-функции, но она не работает, так как я пытался присвоить значение комментариюСтолбец 'and' selection_status 'с использованием' = '
Примечание: я проверил этот вопрос , который похож по названию, но не решает мою проблему.