小编给大家分享一下pandas新版本如何实现数据表多列频率统计,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!
公司主营业务:成都网站制作、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出承留免费做网站回馈大家。
pandas 以前的版本(1.1以前)中,就已经存在单列的频率统计。
我们以泰坦尼克号罹难乘客数据为例子:
希望快速查看各个性别的记录数:
上面显示的是绝对数值,可以显示占比吗?
通过参数 normalize 可以转换成占比
但是,以上都是针对单列的统计,很多时候我们希望对多列组合的频率统计。
现在,pandas 1.1 版本中已为 DataFrame 追加了同名方法 value_counts,下面来看看怎么使用。
查看性别与是否生还的统计数:
第一参数为 subset ,传入需要统计的列名的 list 即可
同样地,通过参数可以微调输出结果:
可以看出来男性生还率非常低
可能对于一些初学者来说会疑惑,难道旧版本得到这个结果很麻烦吗?
其实以前的版本做到一样的效果也是非常容易:
没有按频率倒序输出?
简单在后面"接上"排序操作,结果就一样了:
其实还有另一种解决思路,有兴趣看源码吧
统计比例也没有多大的事情:
那肯定用新版本的方法呀,新方法一句就做了你这么多句的事情!
但是!!!
下面,我们就来看看"自己做主"的优势
之前在讲解单列的频率统计(Series.value_counts)时,其实遗漏了一个挺有用的参数,对于数值型的列才能使用。
希望查看年龄段的频率(分3段吧):
bins 参数指定分3段
通常我们希望按分段排序:
参数 sort 控制是否按频率倒序,设置为 False,则按索引排序
你是不是觉得新版本的 DataFrame.value_counts 也有这个参数呢?
很遗憾,并没有这个参数,应该考虑到组合列的值是不能分段的。
不过对于自定义函数,当然想干啥就干啥:
由于本身 DataFrame.groupby 就可以支持混合类型的 key。因此在 key 设置时,可以是列名(一个字符串),也可以是列值,也可以是他们的混合
看完了这篇文章,相信你对“pandas新版本如何实现数据表多列频率统计”有了一定的了解,如果想了解更多相关知识,欢迎关注创新互联行业资讯频道,感谢各位的阅读!