как использовать оператор if else в python для привязки переменной

#python #pandas #if-statement

#python #pandas #if-statement

Вопрос:

Привет, у меня есть переменная ‘age’ в моих данных, и я хочу привязать ее к python и сохранить в новой переменной. что-то вроде этого «

 data['new_age']= if data['age'] <= 16 then 'young'
                 if data['age'] > 16 amp; data['age'] <= 35 then 'adult'
                 else 'old' end
  

как я могу сделать это с фреймом данных pandas?

Комментарии:

1. проверьте pd.cut() — pandas.pydata.org/pandas-docs/stable/reference/api /…

Ответ №1:

 def new_age(r):
    if r['age']<=16:
        return 'young'
    if r['age'] <=35
        return 'adult'
    return 'old'

df['new_age'] = df.apply(lambda x: new_age(x),axis = 1)
  

полностью не согласен с вашим возрастным разделением, 35 — это молодой взрослый

Ответ №2:

Помимо классического pythonic-решения @trigonom (явно отвечающего на ваш вопрос), другие варианты включают:

Использование numpy.select :

 df['new_age'] = np.select([df.age.lt(16), (df.age.gt(16)) amp; (df.age.le(35))], ['young','adult'], 'old')
  

Или pd.cut (как указано @Mike Tomaino):

 df['new_age'] = pd.cut(df.age, [0, 16, 35, np.inf], labels=['young', 'adult', 'old'])