本文转载自微信公众号「数据大宇宙」,作者卡门的儿子。转载本文请联系数据大宇宙公众号。
这是一个关于 pandas 从基础到进阶的练习题系列,来源于 github 上的 guipsamora/pandas_exercises 。这个项目从基础到进阶,可以检验你有多么了解 pandas。
我会挑选一些题目,并且提供比原题库更多的解决方法以及更详尽的解析。
如下数据:
数据描述:
需求:数据中共有多少个订单?
下面是答案了
因为 order_id 列是存在重复的,那么一种比较直观的方式就是去重+计数:
- len(df.order_id.drop_duplicates())
- 1834
但是你可能不知道的是,这个方式是不准确的!
之所以说上一种方式是不准确,是因为没有考虑到空值的问题。
len 函数不会忽略空值(nan) ,因此如果列中有空值,那么就比正确结果数量多。
正确的做法是:
- len(df.order_id.drop_duplicates().dropna())
提示:
即使列中有多个 nan ,经过去重后只会保留一个 nan 值
实际上,pandas 本身有提供一个忽略 nan 的计数方法:
- df.order_id.drop_duplicates().count()
点评:
这种方式个人认为最合适
pandas 为列(Series)提供了一个快速汇总计数方法:
- df.order_id.value_counts()
这相当于实现了去重,因此:
- df.order_id.value_counts().count()
点评:
不过我自制了一个方法查询器,这样子不至于记错方法:
网页题目:聊一下关于去重计数的多种实现方式
URL标题:http://www.shufengxianlan.com/qtweb/news23/313573.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联