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

Python Pandas按国家统计总行数并单值可视化的问题求助

解决Pandas分组统计后绘图显示多列的问题

嗨,我明白你的需求啦——你现在的问题是groupby('Country').count()会返回每个分组下所有列的非缺失值统计数,所以绘图时每个国家会对应多个柱子。要实现类似R中summarize(Total = n())的单值汇总效果,有几种简单的解决方法:


方法1:指定单列进行统计

直接在groupby后选择某一列(比如Country本身,或者任何没有缺失值的列)执行count(),这样结果会是一个Series(只有一列数据),绘图时就只会显示每个国家的单条柱子:

# 选择Country列统计行数(等价于统计每个国家的总行数)
newData = myData.groupby('Country')['Country'].count()
newData.plot(kind='bar', figsize=(15, 10))

方法2:使用size()方法(最接近R的n())

size()方法会直接统计每个分组的总行数,不管列中是否有缺失值,这和R里的n()功能完全一致:

# size()返回每个国家对应的总行数
newData = myData.groupby('Country').size()
newData.plot(kind='bar', figsize=(15, 10))

方法3:用agg()自定义汇总列名

如果你想明确指定汇总结果的列名(比如叫Total),可以用agg()方法,写法更贴近R的summarize语法:

# 自定义汇总列名Total,统计每个国家的总行数
newData = myData.groupby('Country').agg(Total=('Country', 'count'))
newData.plot(kind='bar', figsize=(15, 10))

小提示

  • count()统计的是指定列的非缺失值数量,如果你的数据中某列存在缺失,结果会比总行数少;
  • size()统计的是分组的总行数,不管列是否有缺失,更适合替代R的n()。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:39:42