You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python pandas问卷数据清洗:实现年龄区间分类重分组

Pandas 年龄列重分组实现方案

直接对原分类值调用groupby无法自动合并指定类别,先通过值映射把原有分类匹配到目标分组标签,再做后续统计/聚合即可。

映射规则说明

目标共2个分组,对应原分类映射关系如下:

  • <=25:合并原分类Between 18 -25、Under 18
  • >=26:合并原分类Between 26 - 30、31 or more

具体实现代码

方法1:生成固定分组列(推荐)

先在数据表中新增分组列,后续可以直接复用做各类分析:

# 定义分类映射字典
age_group_map = {
    'Between 18 -25': '<=25',
    'Under 18': '<=25',
    'Between 26 - 30': '>=26',
    '31 or more': '>=26'
}

# 新增年龄分组列,不需要保留原列也可以直接赋值给game['Age']覆盖
game['age_group'] = game['Age'].replace(age_group_map)

执行后可以通过值计数验证结果:

print(game['age_group'].value_counts())

得到的输出和预期一致:

<=25    141
>=26     28
Name: age_group, dtype: int64

后续要做分组统计,直接对新列调用groupby即可,例如统计不同年龄组的游戏时长均值:

game.groupby('age_group')['play_hours'].mean()

方法2:不修改原表临时分组

如果不想改动原数据表结构,可以在groupby中直接传入映射后的序列完成分组:

# 示例:直接统计各分组样本量
game.groupby(game['Age'].map(age_group_map)).size()

之前groupby未生效的原因

groupby会按照传入字段的现有唯一值做拆分,不会自动按照预期逻辑合并离散分类,必须先完成值到目标分组的映射转换,才能得到正确的分组结果。

内容的提问来源于stack exchange,提问作者Ben

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 01:30:57