You need to enable JavaScript to run this app. Python基于pandas DataFrame对年龄分组列求和绘制柱状图/饼图实现年龄分布统计
优惠活动
大模型
产品
解决方案
定价
更多

Python基于pandas DataFrame对年龄分组列求和绘制柱状图/饼图实现年龄分布统计

Pandas年龄分布数据统计与可视化实现

数据统计逻辑

完全适配现有表结构,无需额外做格式转换:

  • 跳过用户唯一标识列new_id,保留所有年龄区间对应的0/1标记列
  • 对剩余的年龄标记列逐列求和,得到的结果就是对应年龄区间的总人数
    • 表中0/1为标记位逻辑:值为1代表该用户命中对应年龄区间,值为0代表未命中

核心实现代码

首先导入依赖并完成统计计算:

import pandas as pd
import matplotlib.pyplot as plt

# df 为加载完成的原始数据表
# 移除new_id标识列后逐列求和,得到各年龄区间的人数统计值
age_distribution = df.drop("new_id", axis=1).sum()

# 解决Matplotlib中文显示乱码问题
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

柱状图实现(适合直观对比各区间人数差异)

plt.figure(figsize=(10, 6))
age_distribution.plot(kind="bar", color="#3a7bd5", width=0.6)
plt.title("全量人群各年龄区间人数分布")
plt.xlabel("年龄区间")
plt.ylabel("统计人数")
plt.xticks(rotation=0)
plt.grid(axis="y", linestyle="--", alpha=0.3)
plt.tight_layout()
plt.show()

饼图实现(适合直观展示各区间人数占比)

绘制前过滤掉统计值为0的空区间,避免出现无意义的0值扇区:

# 过滤空区间后的有效统计数据
valid_age = age_distribution[age_distribution > 0]

plt.figure(figsize=(8, 8))
valid_age.plot(kind="pie", autopct="%1.1f%%", startangle=90, wedgeprops={"edgecolor": "white"})
plt.title("全量人群各年龄区间占比")
plt.ylabel("")  # 隐藏饼图默认的y轴冗余标签
plt.tight_layout()
plt.show()

备注:针对示例中的样例数据,统计结果为:18-24区间0人、25-34区间5人、35-44区间1人、45-54区间2人、55-64区间3人、65-74区间3人,75岁以上相关区间统计值均为0,绘图时会自动过滤全为0的无效区间。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.13 02:45:03