#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'])