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

我是数据外星人 2024-02-19 06:07:54
前言

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 吧。

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

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

实现代码很简单

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

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

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

不要忘记一键三连。你的点赞、收藏、关注,是我创作的动力。

转发、关注我,私信"pandas",获得本期源码和数据。

0 阅读:1

我是数据外星人

简介:感谢大家的关注