关于数据分析:Pandas系列一切从爆炸函数开始

Pandas系列|所有从爆炸函数开始

前段时间部门有位大数据开发的共事到职了,在他和其余开发的共事进行工作我的项目交接的时候,我去旁听了下,因为波及到一些公司业务逻辑的问题。当讲到某个我的项目的时候,他谈到:

这个业务逻辑是…….,我用Hive中的爆炸函数实现了这个性能。

过后他举了一个简略的例子来阐明爆炸函数的性能,我当场就记下了这个函数名称:爆炸函数。Hive在我的工作中应用的并不多,于是我在想:Pandas可能实现这个性能吗

爆炸函数性能

爆炸函数到底实现的是什么需要呢?我回顾一下过后的例子:

当初有一份数据,蕴含订单编号和订单中商品价格(每个订单3个商品),应用hive中的爆炸函数之后变成如下图所示的样子:相当于是实现了列转成行的性能。这样后续就能进行各种聚合操作。

Hive中实现爆炸性能有两个函数,可自行搜寻理解:

  • explode(col)
  • lateral view:侧写函数

pandas实现

具体需要

碰巧最近有一个需要就用到爆炸函数的性能,不过是用pandas实现的。在上面表格的右边局部是每个订单的销售记录,蕴含销售员、跟单员、结单员,他们三者不肯定是同一个人

当初须要统计每个员工的销售业绩。销售业绩也就是指员工参加了多少订单。统计每个员工的销售业绩:

  • 有作为销售员、跟单员、结单员的任意一种,即可阐明参加了该订单的销售;
  • 同一个订单中,一个员工参加屡次只记为一次

爆炸函数到底实现的是什么性能呢?左边就是咱们想要的后果:

  • 张三:加入了订单号1-销售员,订单号2-跟单员、结单员,数量2
  • 李四:加入了订单号1-跟单员、结单员,订单2-销售员,订单号3-跟单员,数量3
  • 王五:加入了订单号3-销售员、结单员,数量1

解决过程

1、在pandas模仿了一份数据如下:

2、生成一个新字段:员工

3、施行爆炸性能,应用的是pandas中的explode函数,失去新数据:能够看到每个订单号会屡次呈现

4、统计后果

这样依据不同的字段,比方员工、销售员、跟单员等就能统计不同的业绩

什么是pandas

pandas中文叫做熊猫,它是Python的外围数据处理和数据分析的第三方库,它领有疾速、灵便、明确的数据结构。

Pandas是一个弱小的剖析结构化数据的工具集;它的应用根底是Numpy(另一个Python库,提供高性能的矩阵运算),可能用于数据挖掘和数据分析,同时也提供数据荡涤性能。

Pandas有什么用

pandas的具体应用当前会造成连载系列,敬请期待!

本文结语:拥抱pandas,辞别Excel

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理