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

如何在Pandas .plot()中按州汇总学校数量,避免重复行绘图

问题:用Pandas绘制按州汇总的学校总数柱状图

我有一个包含美国全部50个州数据的Pandas DataFrame,结构如下:

州名学区每个学区的学校数量
AlabamaAlabama District 121
AlabamaAlabama District 25
AlaskaAlaska District 13
AlaskaAlaska District 24

我原本想用Pandas绘制学校数量与州的关系图,代码如下:

school_data.plot(kind='bar', 
                 x="State Name", 
                 xlabel="State",
                 y="Schools Per District",
                 ylabel="Number of Schools",
                 rot=0,
                 width=10,
                 figsize=(15, 5),
                 title="Number of Schools per District vs. US State"
                 );

但生成的图表是每个学区单独的柱状条,而非按州汇总所有学区的学校总数,数据冗余。


解决方案

要实现按州汇总学校总数并绘制柱状图,需先对数据按州分组求和,再绘图:

1. 分组汇总州级学校总数

使用groupby结合sum方法计算每个州的学校总数:

# 按"州名"分组,对"每个学区的学校数量"列求和,重置索引转为普通DataFrame
state_total_schools = school_data.groupby('州名')['每个学区的学校数量'].sum().reset_index()

2. 绘制汇总后的柱状图

修改绘图代码,使用汇总后的数据集:

state_total_schools.plot(kind='bar', 
                         x="州名", 
                         xlabel="美国各州",
                         y="每个学区的学校数量",
                         ylabel="学校总数",
                         rot=45,  # 旋转x轴标签避免名称重叠
                         figsize=(15, 5),
                         title="美国各州学校总数统计"
                         );

额外优化建议

  • 移除原代码中width=10的设置,该值会导致柱状条过宽,若需调整可设为width=0.8这类合理值
  • 若想按学校总数排序展示,可在汇总后添加排序代码:
    state_total_schools = state_total_schools.sort_values('每个学区的学校数量', ascending=False)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:52:49