写点什么

Pandas 入门教程 - 开篇之作

用户头像
皮大大
关注
发布于: 3 小时前
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

发布于: 3 小时前阅读数: 3
用户头像

皮大大

关注

志之所趋,无远弗届,穷山距海,不能限也。 2019.01.15 加入

还未添加个人简介

评论

发布
暂无评论
Pandas入门教程-开篇之作