pandas---groupby高阶transform,filter,apply,agg方法

2023-10-14 05:58

本文主要是介绍pandas---groupby高阶transform,filter,apply,agg方法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

# 一般运用了groupby函数
order_prior.head(100)

在这里插入图片描述

# 然后对user_id进行分组,求出每一组的最大值
order_prior.groupby("user_id")["order_number"].max()
# 所求得是每一个user最大得“order_number”
# 这里也可以使用apply方法,apply里面也可以是自己定义的函数
order_prior.groupby("user_id")["order_number"].apply(lambda x : max(x))

在这里插入图片描述


# apply方法比较常用,因为可以处理多列
order_prior.groupby("user_id").apply(lambda x["order_number"], x["order_row"] : max(x["order_number"] + min(x["order_row"])))

在这里插入图片描述

# 假如是想使用多个函数,比如想求最大值,最小值等等,可以使用agg方法
def m(x):return len(x)# 使用m函数时返回该user_id下order_number的个数
order_prior.groupby("user_id")["order_number"].agg([m,"min"])
# 多个函数时是需要进行中括号的

在这里插入图片描述

# transform函数是将df进行分类,分类完之后会返回与df行数相同的series形式
# 你要求 user_id中order_number(某一列)的一个均值,那么用transform就可以把不同的user_id的order_number都转化为该组内的最大值,并且返回series形式
# 可以理解为将df进行apply方法操作后,再重新拉伸成原始数据的长度,就是将这些值一个个分配回对应的index
order_prior.user_id
# 第一列是index,后面那一列是user_id

在这里插入图片描述

# 使用transform就可以把组内所有的值都转为为最大值,记住是组内的,
# 并且返回的是与输入数据的长度相同的series形式,index也是一 一对应
order_prior.groupby('user_id')['order_number'].transform(max)
# 可以使用自定义函数
order_prior.groupby('user_id')['order_number'].transform(m)
# 所以最终的结果与上面的长度相同,并且user_id相同的,都是该user_id下的最大值

在这里插入图片描述
在这里插入图片描述

# 最后讲一下fliter函数,fliter函数就是比apply好用地方就是,apply的函数如果是判断语句的话,会输出布尔型的结果,如果使用fliter,则直接过滤掉不满足条件的数据。
# 但是fliter时只能处理df形式的,也就是列数大于1
# 这里过滤掉order_number最大值小于15的
order_prior.groupby("user_id").filter(lambda x:max(x["order_number"])<15)

在这里插入图片描述

这篇关于pandas---groupby高阶transform,filter,apply,agg方法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/208609

相关文章

Nginx 413修改上传文件大小限制的方法详解

《Nginx413修改上传文件大小限制的方法详解》在使用Nginx作为Web服务器时,有时会遇到客户端尝试上传大文件时返回​​413RequestEntityTooLarge​​... 目录1. 理解 ​​413 Request Entity Too Large​​ 错误2. 修改 Nginx 配置2.1

使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案

《使用@Cacheable注解Redis时Redis宕机或其他原因连不上继续调用原方法的解决方案》在SpringBoot应用中,我们经常使用​​@Cacheable​​注解来缓存数据,以提高应用的性能... 目录@Cacheable注解Redis时,Redis宕机或其他原因连不上,继续调用原方法的解决方案1

Python Pandas高效处理Excel数据完整指南

《PythonPandas高效处理Excel数据完整指南》在数据驱动的时代,Excel仍是大量企业存储核心数据的工具,Python的Pandas库凭借其向量化计算、内存优化和丰富的数据处理接口,成为... 目录一、环境搭建与数据读取1.1 基础环境配置1.2 数据高效载入技巧二、数据清洗核心战术2.1 缺失

sql语句字段截取方法

《sql语句字段截取方法》在MySQL中,使用SUBSTRING函数可以实现字段截取,下面给大家分享sql语句字段截取方法,感兴趣的朋友一起看看吧... 目录sql语句字段截取sql 截取表中指定字段sql语句字段截取1、在mysql中,使用SUBSTRING函数可以实现字段截取。例如,要截取一个字符串字

JAVA数组中五种常见排序方法整理汇总

《JAVA数组中五种常见排序方法整理汇总》本文给大家分享五种常用的Java数组排序方法整理,每种方法结合示例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧... 目录前言:法一:Arrays.sort()法二:冒泡排序法三:选择排序法四:反转排序法五:直接插入排序前言:几种常用的Java数组排序

Python将字符串转换为小写字母的几种常用方法

《Python将字符串转换为小写字母的几种常用方法》:本文主要介绍Python中将字符串大写字母转小写的四种方法:lower()方法简洁高效,手动ASCII转换灵活可控,str.translate... 目录一、使用内置方法 lower()(最简单)二、手动遍历 + ASCII 码转换三、使用 str.tr

Python处理超大规模数据的4大方法详解

《Python处理超大规模数据的4大方法详解》在数据的奇妙世界里,数据量就像滚雪球一样,越变越大,从最初的GB级别的小数据堆,逐渐演变成TB级别的数据大山,所以本文我们就来看看Python处理... 目录1. Mars:数据处理界的 “变形金刚”2. Dask:分布式计算的 “指挥家”3. CuPy:GPU

Spring Boot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)

《SpringBoot拦截器Interceptor与过滤器Filter深度解析(区别、实现与实战指南)》:本文主要介绍SpringBoot拦截器Interceptor与过滤器Filter深度解析... 目录Spring Boot拦截器(Interceptor)与过滤器(Filter)深度解析:区别、实现与实

Java中的StringUtils.isBlank()方法解读

《Java中的StringUtils.isBlank()方法解读》:本文主要介绍Java中的StringUtils.isBlank()方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑... 目录所在库及依赖引入方法签名方法功能示例代码代码解释与其他方法的对比总结StringUtils.isBl

CentOS7增加Swap空间的两种方法

《CentOS7增加Swap空间的两种方法》当服务器物理内存不足时,增加Swap空间可以作为虚拟内存使用,帮助系统处理内存压力,本文给大家介绍了CentOS7增加Swap空间的两种方法:创建新的Swa... 目录在Centos 7上增加Swap空间的方法方法一:创建新的Swap文件(推荐)方法二:调整Sww