前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >这次pandas真的要与sql干上了,你有的我得都有,遥遥领先就对了

这次pandas真的要与sql干上了,你有的我得都有,遥遥领先就对了

作者头像
咋咋
发布2024-01-29 18:23:41
590
发布2024-01-29 18:23:41
举报
文章被收录于专栏:数据大宇宙数据大宇宙

前言

sql 中的 过滤、分组、聚合、排序、表连接,在 pandas 中全都有对应方法。

sql 高高手会说,case when 你没有了吧。

没有比 sql 更简洁的了,在干净数据面前,sql 是无人能敌。

以前pandas确实没有直接的 case when 方法,不过现在还真有!没错,这是 pandas 2.2 版本新增的功能。而且名字也是一绝,就叫 ”case_when“

其实 pandas 的一众大佬们也开了会,讨论了一段时间

大致的意思是,许多人都在问,pandas 中如何根据条件创建列。在我的 pandas 专栏里面也详细讲解两种最常用的方式。

比如 numpy 的 select 就可以做到:

不过写法上是错开来的

不过,我们可以自定义函数,打造自己喜欢的调用方式。我们放在最后再看能否与新版本官方的 case_when pk一下。

看看官方提供的玩法。

  • 不明原因,没有智能提示

很类似前面的 np.select ,只不过把结构弄成一个元组列表,每个元组对应 (条件,值)。而默认值就要在一开始定义到列里面。

值得注意的是,索引要对齐,所以行1代码要与 data 的 index 对上。

这真的好用吗?现在我们通过自定义函数,改造 np.select 吧。

第一种是直接一个函数搞定:

函数第一个参数是默认值,之后的是一对对出现的条件和对应值。

实现代码很简单

不过,有人喜欢”带对象“,开口闭口都是"面向对象",也来一个对象版本吧:

看起来比官方的舒服啊,全程智能提示。实现代码也非常简单:

你觉得官方的实现好用吗,评论区告诉我。

本文参与?腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2024-01-24,如有侵权请联系?cloudcommunity@tencent.com 删除

本文分享自 数据大宇宙 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com