温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

pandas新版本如何实现数据表多列频率统计

发布时间:2021-11-30 10:36:43 来源:亿速云 阅读:459 作者:小新 栏目:大数据

小编给大家分享一下pandas新版本如何实现数据表多列频率统计,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!



列频率统计

pandas 以前的版本(1.1以前)中,就已经存在单列的频率统计。

我们以泰坦尼克号罹难乘客数据为例子:

pandas新版本如何实现数据表多列频率统计  
image-20200806092628285

希望快速查看各个性别的记录数:

pandas新版本如何实现数据表多列频率统计  
image-20200806092732878

上面显示的是绝对数值,可以显示占比吗?

pandas新版本如何实现数据表多列频率统计  
image-20200806092901143
  • 通过参数 normalize 可以转换成占比

但是,以上都是针对单列的统计,很多时候我们希望对多列组合的频率统计。


 

数据表的多列频率统计

现在,pandas 1.1 版本中已为 DataFrame 追加了同名方法 value_counts,下面来看看怎么使用。

查看性别与是否生还的统计数:

pandas新版本如何实现数据表多列频率统计  
image-20200806093401214
  • 第一参数为 subset ,传入需要统计的列名的 list 即可

同样地,通过参数可以微调输出结果:

pandas新版本如何实现数据表多列频率统计  
image-20200806093527710
  • 可以看出来男性生还率非常低

可能对于一些初学者来说会疑惑,难道旧版本得到这个结果很麻烦吗?

其实以前的版本做到一样的效果也是非常容易:

pandas新版本如何实现数据表多列频率统计  
image-20200806094104421

没有按频率倒序输出?

简单在后面"接上"排序操作,结果就一样了:

pandas新版本如何实现数据表多列频率统计  
image-20200806094230946

其实还有另一种解决思路,有兴趣看源码吧

统计比例也没有多大的事情:

pandas新版本如何实现数据表多列频率统计  
image-20200806094306039

那肯定用新版本的方法呀,新方法一句就做了你这么多句的事情!

但是!!!

下面,我们就来看看"自己做主"的优势


 

分段统计

之前在讲解单列的频率统计(Series.value_counts)时,其实遗漏了一个挺有用的参数,对于数值型的列才能使用。

希望查看年龄段的频率(分3段吧):

pandas新版本如何实现数据表多列频率统计  
image-20200806095018867
  • bins 参数指定分3段

通常我们希望按分段排序:

pandas新版本如何实现数据表多列频率统计  
image-20200806095136997
  • 参数 sort 控制是否按频率倒序,设置为 False,则按索引排序

你是不是觉得新版本的 DataFrame.value_counts  也有这个参数呢?

很遗憾,并没有这个参数,应该考虑到组合列的值是不能分段的。

不过对于自定义函数,当然想干啥就干啥:

pandas新版本如何实现数据表多列频率统计  
image-20200806100144613
  • 由于本身 DataFrame.groupby 就可以支持混合类型的 key。因此在 key 设置时,可以是列名(一个字符串),也可以是列值,也可以是他们的混合


看完了这篇文章,相信你对“pandas新版本如何实现数据表多列频率统计”有了一定的了解,如果想了解更多相关知识,欢迎关注亿速云行业资讯频道,感谢各位的阅读!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI