python - 在按年龄类别分组的 Pandas DF 中创建新列
问题描述
我是编码新手,所以我很抱歉问了一个愚蠢而简单的问题。我已经在网上搜索并阅读了文档,但找不到答案,4 小时后我希望得到指导。
我有一个名为"data"的 Pandas DataFrame 。“数据”有一个年龄列,其中包含大量不同的年龄。我想隔离某些年龄组以进行不同类型的分析。就像年轻人锻炼了多少小时(在一snsplot
)。
在我看来,解决这个问题的最佳方法是在“数据”中添加一个包含 age_group 的列。为年龄组分配一些逻辑(如附图所示)
我可能是错的,就像我说我才几个月才开始学习 python。感谢您提供的任何帮助。一旦我知道如何做,我计划在更多的专栏上这样做。
我试图根据我正在寻找的年龄组创建变量
teenage = data[data['age']<=19]
yadult = data[data['age'].between(20,24)]
adult = data[data['age'].between(25,39)]
older_adult = data[data['age']>39]
当我尝试在snsplot
.
所以我然后尝试了这个:
data['yadult'] = data[data['age'].between(20,24)]
但得到一个错误: “ValueError:错误的项目数通过了 9,位置意味着 1
这里的最终目标是让“数据”DataFrame 带有一个带有年龄组的全新列。如下所示。
产品 | 年龄 | 性别 | 教育 | …… | 年龄阶层 |
---|---|---|---|---|---|
TM195 | 18 | 男性 | 14 | …… | 青少年 |
TM195 | 27 | 男性 | 16 | …… | 成人 |
.csv 数据布局:
我正在尝试创建的存储桶:
解决方案
使用以下代码,您可以age_group
根据以下方式分配新列age
:
data.loc[data['age']<=19, 'age_group'] = 'teenage'
data.loc[data['age'].between(20,24), 'age_group'] = 'yadult'
data.loc[data['age'].between(25,39), 'age_group'] = 'adult'
data.loc[data['age']>39, 'age_group'] = 'older_adult'
推荐阅读
- python - 比特币 RPC 连接不断失败
- jquery - jQuery Datable - 排序后获取 Datable 相关的输入归档值
- postgresql - 带有测试容器的未终止美元报价初始化脚本
- python-3.x - 熊猫将最大列添加到原始数据框中
- javascript - 如何优化游戏中的音频?
- python - 使用 while 循环拒绝重复的新用户名
- angular - Angular - 动态添加控件的属性绑定
- javascript - 多个值推送上的 Javascript 数组对象错误
- javascript - 通过JS录制流
- php - 在 laravel 中使用 pluck 函数访问数组构建