python - 所以我有年龄从 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”年龄组
解决方案
使用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)
推荐阅读
- python - 将 Numpy 矩阵写入文件
- python - 为什么在这个 python 代码中迭代在 995 处终止?问题4项目欧拉
- angular - 角度动态模板加载
- node.js - 使用任意文件 npm 和 SFTP 的 AWS s3 存储桶到 ec2 文件传输
- multithreading - 使用 peach 时,随机状态如何传播到不同的线程?
- c++ - 为什么不将 shared_ptr to Derived 隐式转换为 shared_ptr to Base
- r - 使用 read_excel 和缺失值在 R 中导入数据
- javascript - 如何在 React 中单击按钮时从服务器转储数据?
- java - java.util.Function源码通配符边界使用理解
- java - Gradle 多项目测试依赖项在 Eclipse 中不再适用于 Gradle 6.7