【Python】Pandas实现sql的case when查询,原来这么简单!


【Python】Pandas实现sql的case when查询,原来这么简单!

仅用于站内搜索,没有排版格式,具体信息请跳转上方微信公众号内链接

sql中的casewhen的功能是实现单列或者多列的条件统计,其实Pandas也可以实现的,比如万能的apply方法,就是写起来复杂一些,没有sqlcasewhen那么直观。
apply方法可以对dataframe、series执行特定函数,其实很强大,因为python什么逻辑都可以写。
举个例子,一张考试成绩的表scores,有语文和数学的得分,现在给考生综合打分,两门都在90以上打A,都在80-90之间打B,其他则打C。
这里如果用sql来查询的话,使用casewhen就很简单明了。
如果用pandasapply方法来实现的话,需要自定义一个判断函数,用来对成绩进行分类。
然后用apply方法应用到dataframe上,以下是完整代码,可以放到本地电脑跑。
逻辑也很简单,判断函数实现多列的判断条件,apply将该判断函数应用到数据集上,就能实现类似sqlcasewhen的功能。
apply的应用场景很多,远比你想象的多得多,比如一张学生成绩信息的表,它可以给每位学生通过deepseek制定个性化的提升建议。
除了pandasapply能实现casewhen的功能外,numpy的select方法也能搞定,而且更为通用、简洁,建议试试。
numpyselect方法类似casewhen语法,通过一个多列条件判断,区分不同的分类。
除了这两种,其实pandas种还有不少能实现的途径,但没必要尝试,因为这两种相对通用便捷,且符合python哲学。


文章作者: ZejunCao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZejunCao !
  目录