乐趣区

关于数据分析: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

退出移动版