首页 > 解决方案 > 所以我有年龄从 10-70 不等的年龄列,我需要创建新的年龄组列,例如 18-25、25-40、40-55 和 55+

问题描述

我创建了一个这样的函数。

def age_group(age):
    if age >= 18 & age <= 25:
        return '18-25'
    elif age > 25 & age <= 40:
        return '25-40'
    elif age > 40 & age <= 55:
        return '40-55 ' 
    else:
        return '55+'
age_group(20)

然后我使用了这样的apply方法survey['age_group']=survey['age'].apply(age_group)

但是即使年龄大于 25 或小于 18,age_group 列也会在所有列中返回“18-25”年龄组

标签: pythonpandasdataframefunction

解决方案


使用pd.cut

survey['age_group'] = pd.cut(survey['age'],
                             bins=[18,25,40,55, 70],
                             labels=['18-25', '25-40', '40-55', '55+',
                             include_lowest=True)

推荐阅读