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

如何用Python的Pandas按性别分类绘制自杀死亡人数柱状图

解决方法:生成男女自杀人数的汇总柱状图

嘿,我完全懂你想要的效果啦——你需要的是仅展示男、女两个柱状图,分别对应各自的自杀死亡总人数,而不是现在每个数据条目单独占一个柱子的图表。咱们来调整一下代码,几步就能搞定:

问题根源

你当前的代码suicide_df.plot.bar('sex')是把suicide_df里的每一行数据都绘制成一个柱子,所以才会出现一堆零散的柱子。我们需要先对性别进行分组计数,再基于汇总后的数据绘图。

完整代码示例

import pandas as pd
import matplotlib.pyplot as plt

# 假设你已经完成了数据导入和筛选,得到suicide_df
# 按性别统计自杀人数
suicide_counts = suicide_df['sex'].value_counts()

# 绘制柱状图
suicide_counts.plot(kind='bar', rot=0)  # rot=0让x轴标签保持水平,更易读

# 设置图表标签和标题
plt.xlabel('性别')
plt.ylabel('自杀死亡人数')
plt.title('不同性别的自杀死亡人数对比')

plt.show()

代码解释

  1. suicide_df['sex'].value_counts():这个Pandas方法会自动统计sex列中每个值的出现次数,也就是直接得到男性和女性的自杀总人数,结果是一个包含两个元素的Series。
  2. .plot(kind='bar', rot=0):基于汇总后的Series绘制柱状图,rot=0参数可以让x轴的“F”“M”标签保持水平,避免倾斜影响阅读。
  3. 最后添加标签和标题,让图表信息更清晰直观。

另一种等价方法(使用groupby)

如果你更习惯用groupby来实现分组统计,也可以这样写:

suicide_counts = suicide_df.groupby('sex').size()
# 后续绘图代码和上面一致

这样调整后,你就能得到只有两个柱子的柱状图,完美符合你的需求啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 06:44:29