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

如何将DataFrame中6-90岁的age列按指定区间分组用于图表展示?

Pandas按指定年龄区间分组并可视化

当然可以,用Pandas的pd.cut()方法就能轻松实现按固定宽度的年龄区间分组,以下是具体步骤和代码示例:


1. 定义区间边界与标签

首先根据需求设置年龄区间的边界和对应的显示标签,确保覆盖你的数据范围(6-90岁):

import pandas as pd
import matplotlib.pyplot as plt

# 假设你的DataFrame名为df,包含'age'列
# 定义区间边界:从5开始,每5岁一个区间,最后包含90及以上
bins = list(range(5, 90, 5)) + [float('inf')]
# 生成对应标签:如'5-9'、'10-14'...'85-89'、'90+'
labels = [f'{start}-{start+4}' for start in range(5, 90, 5)] + ['90+']

2. 生成年龄分组列

使用pd.cut()将原始年龄映射到对应的区间,right=False确保区间是左闭右开(比如[5,10)对应5-9岁):

df['age_group'] = pd.cut(df['age'], bins=bins, labels=labels, right=False)

3. 分组统计与可视化

统计每个区间的人数并排序,然后绘制柱状图展示:

# 统计各区间人数并按区间顺序排序
age_group_counts = df['age_group'].value_counts().sort_index()

# 绘制柱状图
age_group_counts.plot(kind='bar', figsize=(10, 6))
plt.title('年龄区间分布')
plt.xlabel('年龄区间')
plt.ylabel('人数')
plt.xticks(rotation=45)  # 旋转x轴标签避免重叠
plt.show()

补充说明

  • 如果你的数据中没有90岁以上的样本,'90+'标签只会包含90岁的人群,也可以调整bins为list(range(5, 91, 5)),标签最后一项设为'85-90',配合right=True让90岁被包含在该区间内。
  • 若需要更灵活的区间定义,可直接修改bins和labels列表,比如拆分特定年龄段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.16 14:23:08