网站首页 > 知识剖析 正文
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!
猜你喜欢
- 2025-09-19 SketchUp如何炸开模型?_su炸开模型什么意思
- 2025-09-19 《死神·千年血战篇》:星十字骑士团29名全部能力与阵亡详解
- 2025-09-19 由blow构成的动词短语_blow的词组搭配
- 2025-09-19 73人死亡!墨西哥炼油厂发生爆炸!目击者:偷油者当场烧成灰
- 2025-09-19 CAD中块的生成和分解BLOCK、EXPLODE!
- 2025-09-19 Hive 必会 SQL 语法 explode 和 lateral view
- 2025-09-19 盘点一个Excel数据分割和explode()实战问题
- 最近发表
- 标签列表
-
- xml (46)
- css animation (57)
- array_slice (60)
- htmlspecialchars (54)
- position: absolute (54)
- datediff函数 (47)
- array_pop (49)
- jsmap (52)
- toggleclass (43)
- console.time (63)
- .sql (41)
- ahref (40)
- js json.parse (59)
- html复选框 (60)
- css 透明 (44)
- css 颜色 (47)
- php replace (41)
- css nth-child (48)
- min-height (40)
- xml schema (44)
- css 最后一个元素 (46)
- location.origin (44)
- table border (49)
- html tr (40)
- video controls (49)