首页 > 解决方案 > 在按年龄类别分组的 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 数据布局:

我正在尝试创建的存储桶:

标签: pythonpandas

解决方案


使用以下代码,您可以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'

推荐阅读