持续创造,加速成长!这是我参与「日新方案 10 月更文应战」的第5天,点击查看活动详情

✔个人主页:Mr.Darcy8的主页

欢迎关注点赞收藏⭐留言以及交流人生哲理学习心得

今日本人在赶学校课程作业的时分忽然发现groupby这个分组函数还是蛮有用的,有了这个分组之后你能够完结许多核算目标。

当然,最主要的是,他的使用十分简略

本期咱们以上期作业为例,单走一篇文章来看看这个函数能够完结哪些功用:

(本期需求准备的行囊):

  • jupyter notebook环境(anaconda自带)
  • pandas第三方库
  • numpy第三方库(也许会用吧)
  • 能运转以上依靠的电脑和舒服的外设
  • 一定的python基础
  • 需求是吃饱喝足的你,带上能运作的小脑瓜来持续

一、了解groupby

这是一个函数,一般作用于dataframe上,有返回值,不改变原变量。输出的是原dataframe按照传入参数分组后的结果。

Pandas数据分析之groupby妙用

咱们一通引入获得了一个dataframe,按照“user”进行了分组,发现得到的是一个dataframegroupby目标。这个目标内部是什么呢?咱们用遍历循环来看看:

for i in f.groupby("user"):
    print(i)

Pandas数据分析之groupby妙用

发现这个目标内部是一个个元组,每个元组的第一个元素是咱们设定的分组根据的值

(例如这儿咱们设定的分组根据是user,这儿第一个元组包括的是user为19500时的一切记载,元组第一个元素便是19500)

而当咱们输出元组里的第二个元素的时分,发现得到的是类似dataframe的结果

Pandas数据分析之groupby妙用

看前面user下面的数据,整齐划一,是不是?o(〃^▽^〃)o

二、数据文件简介

文章中所用数据为某时段内顾客的行为数据。user为顾客编号,brand为品牌编号,behavr为顾客行为(0代表阅读,1代表购买,2代表收藏,3代表加入购物车。且允许存在不阅读直接购买的行为)

接下来咱们要针对这些数据进行处理,输出一些有用的结果

三、求各个产品购买量

因为要求核算的“购买”行为归于behavr列中的某特殊值。很容易想到先用条件筛选选出一切购买的记载,再用groupby按各个产品分类,再用size()办法核算分组后每组的数量,以此输出各个产品的购买量。

Pandas数据分析之groupby妙用

那么会了这个之后来触类旁通一下:求各个产品阅读量

自行考虑一下再往下翻哦

Pandas数据分析之groupby妙用

没错,便是改一下一开始条件过滤的数值即可。把购买(1)改成阅读(0)

四、求各个产品转化率

商业数据剖析经常会遇到一个数据量——转化率,其实便是购买的数量比上阅读的数量。以此来看这个产品是否足够吸引人。

咱们这儿在上面现已核算出了各个产品的阅读量和购买量,事实上只需求比一比就能够了。

正好,pandas的series核算是咱们想要的,他会根据键值对去别离核算

这个series里user姓名是键,数量是值,十分完美符合series核算设定,咱们直接除一下就行。

Pandas数据分析之groupby妙用

pandas用.div()来完结比值功用(前面的比后面的)。

要注意的是,series核算可能会带来缺失值,因为两个series核算的时分并不能确保两个series的键完全相同

即有可能呈现前一个series有的键而后一个没有。比方这儿能够看出brand 11就只有阅读没有购买,因而核算购买量的时分没有11这个键,可是阅读量中有11这个键。

在核算的时分不共有的键会以缺失值的形式呈现,即NaN:

Pandas数据分析之groupby妙用

假如咱们不想看到这个缺失值NaN,在div内添加fill_value参数能够把缺失值弥补上

Pandas数据分析之groupby妙用

五、转化率最高的30个产品及其转化率

这就需求用到排序了。其实也很简略。咱们把前面核算好的转化率用sort_values()函数排序之后输出前30个即可:

Pandas数据分析之groupby妙用

  • sort_value()函数中设置ascending参数为False即为降序,默认为True升序
  • head(n)用来输出前n个,同理tail(n)用来输出最后n个

小小の总结

其实咱们不难发现,python言语其实自身过于“高级”。他不需求你考虑用什么算法来完结这些操作(特别是你自身还在用第三方库的时分)。

她总有相关的函数或者办法能够替你完结。并且这个函数内部可能是C言语等基础言语完结的,代码功率会比你自己在python上手码要快许多

作为使用者,想要快速入门的话,你所需求的——

只是把这些都记住就行了

大约这便是一个像文科相同的编程言语吧……

新人上路,欢迎相互帮扶~Mr_darcy8的主页

能够的话给咱点个赞呗