当前位置: 首页 > news >正文

【pandas技巧】group by+agg+transform函数

目录

1. group by+单个字段+单个聚合

2. group by+单个字段+多个聚合

3. group by+多个字段+单个聚合

4. group by+多个字段+多个聚合

5. transform函数


studentsgradesexscoremoney
0小狗小学部female95844
1小猫小学部male93836
2小鸭初中部male83854
3小兔小学部female90931
4小花小学部male81853
5小草小学部male80991
6小狗初中部female81854
7小猫小学部male93886
8小鸭小学部male88983
9小兔小学部male86891
10小花初中部male92830
11小草初中部male84948

1. group by+单个字段+单个聚合

1.1 方法一

# 求每个人的总金额:
total_money=df.groupby("students")["money"].sum().reset_index()
total_money

1.2 方法二(使用agg)

df.groupby("students").agg({"money":"sum"}).reset_index()
#或者
df.groupby("students").agg({"money":np.sum}).reset_index()
studentsmoney
0小兔1820
1小狗1711
2小猫1670
3小花1861
4小草1825
5小鸭1719

2. group by+单个字段+多个聚合

2.1 方法一(使用group by+merge)

mean_money = df.groupby("students")["money"].mean().reset_index()
mean_money.columns = ["students","mean_money"]
mean_money
total_mean = total_money.merge(mean_money)
total_mean

total_mean = total_money.merge(mean_money)
total_mean
studentstotal_moneymean_money
0小兔1820910.0
1小狗1711855.5
2小猫1670835.0
3小花1861930.5
4小草1825912.5
5小鸭1719859.5

2.2 方法二(使用group by+agg)

total_mean = df.groupby("students").agg(total_money=("money", "sum"),mean_money=("money", "mean")).reset_index()
total_mean
studentstotal_moneymean_money
0小兔1820910.0
1小狗1711855.5
2小猫1670835.0
3小花1861930.5
4小草1825912.5
5小鸭1719859.5

3. group by+多个字段+单个聚合

3.1 方法一

df.groupby(["students","grade"])["money"].sum().reset_index()
studentsgrademoney
0小兔初中部1820
1小狗初中部843
2小狗小学部868
3小猫小学部1670
4小花初中部910
5小花小学部951
6小草初中部1825
7小鸭初中部1719

3.2 方法二(使用agg)

df.groupby(["students","grade"]).agg({"money":"sum"}).reset_index()
studentsgrademoney
0小兔初中部1820
1小狗初中部843
2小狗小学部868
3小猫小学部1670
4小花初中部910
5小花小学部951
6小草初中部1825
7小鸭初中部1719

4. group by+多个字段+多个聚合

agg函数的使用的方法是:agg(新列名=("原列名", "统计函数"))

df.groupby(["students","grade"]).agg(total_money=("money", "sum"),mean_money=("money", "mean"),total_score=("score", "sum")).reset_index()
studentsgradetotal_moneymean_moneytotal_score
0小兔初中部1820910.0192
1小狗初中部843843.088
2小狗小学部868868.093
3小猫小学部1670835.0178
4小花初中部910910.095
5小花小学部951951.098
6小草初中部1825912.5184
7小鸭初中部1719859.5173

5. transform函数

 5.1 方法一(使用groupby + merge)

df_1 = df.groupby("grade")["score"].mean().reset_index()
df_1.columns = ["grade", "average_score"]
df_1
gradeaverage_score
0初中部85.00
1小学部88.25
df_new1 = pd.merge(df, df_1, on="grade")
df_new1
studentsgradesexscoremoneyaverage_score
0小狗小学部female9584488.25
1小猫小学部male9383688.25
2小兔小学部female9093188.25
3小花小学部male8185388.25
4小草小学部male8099188.25
5小猫小学部male9388688.25
6小鸭小学部male8898388.25
7小兔小学部male8689188.25
8小鸭初中部male8385485.00
9小狗初中部female8185485.00
10小花初中部male9283085.00
11小草初中部male8494885.00

5.2 方法二(使用groupby + map)

dic = df.groupby("grade")["score"].mean().to_dict()
dic
{'初中部': 85.0, '小学部': 88.25}
df_new1["average_map_score"] = df["grade"].map(dic)
df_new1
studentsgradesexscoremoneyaverage_scoreaverage_map_score
0小狗小学部female9584488.2588.25
1小猫小学部male9383688.2588.25
2小兔小学部female9093188.2585.00
3小花小学部male8185388.2588.25
4小草小学部male8099188.2588.25
5小猫小学部male9388688.2588.25
6小鸭小学部male8898388.2585.00
7小兔小学部male8689188.2588.25
8小鸭初中部male8385485.0088.25
9小狗初中部female8185485.0088.25
10小花初中部male9283085.0085.00
11小草初中部male8494885.0085.00

5.3 方法三(使用transform一步到位)

df_new1["average_trans_score"] = df.groupby("grade")["score"].transform("mean")
df_new1
studentsgradesexscoremoneyaverage_scoreaverage_map_scoreaverage_trans_score
0小狗小学部female9584488.2588.2588.25
1小猫小学部male9383688.2588.2588.25
2小兔小学部female9093188.2585.0085.00
3小花小学部male8185388.2588.2588.25
4小草小学部male8099188.2588.2588.25
5小猫小学部male9388688.2588.2588.25
6小鸭小学部male8898388.2585.0085.00
7小兔小学部male8689188.2588.2588.25
8小鸭初中部male8385485.0088.2588.25
9小狗初中部female8185485.0088.2588.25
10小花初中部male9283085.0085.0085.00
11小草初中部male8494885.0085.0085.00

相关文章:

【pandas技巧】group by+agg+transform函数

目录 1. group by单个字段单个聚合 2. group by单个字段多个聚合 3. group by多个字段单个聚合 4. group by多个字段多个聚合 5. transform函数 studentsgradesexscoremoney0小狗小学部female958441小猫小学部male938362小鸭初中部male838543小兔小学部female909314小花小…...

一文解读WordPress网站的各类缓存-老白博客

缓存是一种重要的WordPress优化手段,用于提高网站的性能和加载速度。减少计算量,有效提升响应速度,让有限的资源服务更多的用户。本文老白博客便从自己的使用简单给大家介绍下WordPress的缓存,包括 站点缓存(Page Cach…...

从零开始:开发直播商城APP的技术指南

时下,直播商城APP已经成了线上购物、电子商务的核心组成,本文将为您提供一个全面的技术指南,帮助您从零开始开发一个直播商城APP。我们将涵盖所有关键方面,包括技术堆栈、功能模块、用户体验和安全性。 第一部分:技术…...

GZ035 5G组网与运维赛题第6套

2023年全国职业院校技能大赛 GZ035 5G组网与运维赛项(高职组) 赛题第6套 一、竞赛须知 1.竞赛内容分布 竞赛模块1--5G公共网络规划部署与开通(35分) 子任务1:5G公共网络部署与调试(15分) …...

分类预测 | Matlab实现KOA-CNN-GRU-selfAttention多特征分类预测(自注意力机制)

分类预测 | Matlab实现KOA-CNN-GRU-selfAttention多特征分类预测(自注意力机制) 目录 分类预测 | Matlab实现KOA-CNN-GRU-selfAttention多特征分类预测(自注意力机制)分类效果基本描述程序设计参考资料 分类效果 基本描述 1.Matla…...

【Qt】QString怎么转成int

2023年10月29日,周日晚上 第一种方法 这种方法会尝试将 QString 对象转换为 int 类型。如果转换成功,将返回转换后的 int 值;如果转换失败(例如,字符串中包含非数字字符),则返回 0。 QString…...

ubuntu 22.04 安装python-pcl

ubuntu 22.04 安装python-pcl 安装python-pcl修复bug 由于python-pcl库基本已经停止维护,所以Ubuntu22.04 在使用pip install python-pcl安装的时候会出现版本不适配的原因 安装python-pcl 使用Ubuntu22系统自带python3安装python-pcl,随后将下载的包拷…...

【题解】[GenshinOI Round 3 ]P9817 lmxcslD

题目传送门 分析 看到这道题我一开始是有点懵的,但是看了看数据范围,发现有几个点有 n 为质数 的特殊性质,结论先行,大胆猜测是不是可以贪心,所以先打了一个最傻的代码上去试试. void solve(){cin >> n >&…...

在pycharm中,远程操作服务器上的jupyter notebook

一、使用场景 现在我们有两台电脑,一台是拥有高算力的服务器,另一台是普通的轻薄笔记本电脑。如何在服务器上运行jupyter notebook,同时映射到笔记本电脑上的pycharm客户端中进行操作呢? 二、软件 pycharm专业版,jupy…...

SQL 运算符

SQL 运算符 运算符是保留字或主要用于 SQL 语句的 WHERE 子句中的字符,用于执行操作,例如:比较和算术运算。 这些运算符用于指定 SQL 语句中的条件,并用作语句中多个条件的连词。 常见运算符有以下几种: 算术运算符比…...

中间件安全-CVE 复现K8sDockerJettyWebsphere漏洞复现

目录 服务攻防-中间件安全&CVE 复现&K8s&Docker&Jetty&Websphere中间件-K8s中间件-Jetty漏洞复现CVE-2021-28164-路径信息泄露漏洞CVE-2021-28169双重解码信息泄露漏洞CVE-2021-34429路径信息泄露漏洞 中间件-Docker漏洞复现守护程序 API 未经授权访问漏洞…...

系列九、什么是Spring bean

一、什么是Spring bean 一句话,被Spring容器管理的bean就是Spring bean。...

轻量封装WebGPU渲染系统示例<4>-CubeMap/天空盒(源码)

当前示例源码github地址: https://github.com/vilyLei/voxwebgpu/blob/version-1.01/src/voxgpu/sample/ImgCubeMap.ts 此示例渲染系统实现的特性: 1. 用户态与系统态隔离。 2. 高频调用与低频调用隔离。 3. 面向用户的易用性封装。 4. 渲染数据和渲染机制分离。 5. 用户…...

Linux 环境变量 二

目录 获取环境变量的后两种方法 环境变量具有全局属性 内建命令 和环境变量相关的命令 c语言访问地址 重新理解地址 地址空间 获取环境变量的后两种方法 main函数的第三个参数 :char* env[ ] 也是一个指针数组,我们可以把它的内容打印出来看看。 …...

Beyond Compare4 30天试用到期的解决办法

相信很多小伙伴都有在使用Beyond Compare 4软件,如果我们没有激活该软件,就只有30天的评估使用期,那么过了这30天后我们怎么继续使用呢?下面小编就来为大家介绍方法。 打开Beyond Compare4,提示已经超出30天试用期限制…...

sentinel规则持久化-规则同步nacos-最标准配置

官方参考文档&#xff1a; 动态规则扩展 alibaba/Sentinel Wiki GitHub 需要修改的代码如下&#xff1a; 为了便于后续版本集成nacos&#xff0c;简单讲一下集成思路 1.更改pom 修改sentinel-datasource-nacos的范围 将 <dependency><groupId>com.alibaba.c…...

【Linux】tail命令使用

tail 命令可用于查看文件的内容&#xff0c;有一个常用的参数 -f 常用于查阅正在改变的日志文件。 语法 tail [参数] [文件] tail命令 -Linux手册页 著者 由保罗鲁宾、大卫麦肯齐、伊恩兰斯泰勒和吉姆梅耶林撰写。 命令选项及作用 执行令 tail --help 执行命令结果 参…...

【数据结构】面试OJ题——时间复杂度2

目录 一&#xff1a;移除元素 思路&#xff1a; 二&#xff1a;删除有序数组中的重复项 思路&#xff1a; 三&#xff1a;合并两个有序数组 思路1&#xff1a; 什么&#xff1f;你不知道qsort&#xff08;&#xff09; 思路2&#xff1a; 一&#xff1a;移除元素 27. 移…...

LibreOffice编辑excel文档如何在单元格中输入手动换行符

用WPS编辑excel文档的时候&#xff0c;要在单元格中输入手动换行符&#xff0c;可以先按住Alt键&#xff0c;然后回车。 而用LibreOffice编辑excel文档&#xff0c;要在单元格中输入手动换行符&#xff0c;可以先按住Ctrl键&#xff0c;然后回车。例如&#xff1a;...

ideaSSM在线商务管理系统VS开发mysql数据库web结构java编程计算机网页源码maven项目

一、源码特点 SSM 在线商务管理系统是一套完善的信息管理系统&#xff0c;结合SSM框架和bootstrap完成本系统&#xff0c;对理解JSP java编程开发语言有帮助系统采用SSM框架&#xff08;MVC模式开发&#xff09;&#xff0c;系统具有完整的源代码 和数据库&#xff0c;系统主…...

Conda环境管理全攻略:从零配置到VSCode无缝衔接(附清华镜像加速)

Conda环境管理全攻略&#xff1a;从零配置到VSCode无缝衔接&#xff08;附清华镜像加速&#xff09; 在数据科学和机器学习领域&#xff0c;Python环境的配置与管理往往是项目开始的第一步&#xff0c;也是最容易让初学者感到困惑的环节。不同项目可能需要不同版本的Python解释…...

Qwen3-ASR-0.6B作品集:Qwen3-ForcedAligner-0.6B时间戳精度图谱

Qwen3-ASR-0.6B作品集&#xff1a;Qwen3-ForcedAligner-0.6B时间戳精度图谱 你有没有想过&#xff0c;一段语音里的每个字、每个词&#xff0c;甚至每个音节&#xff0c;是在哪个精确的时间点被说出来的&#xff1f;这听起来像是电影后期制作里的黑科技&#xff0c;但现在&…...

【读书笔记】《如何做到爱孩子也被孩子爱》

《如何做到爱孩子也被孩子爱》作者&#xff1a;法国著名心理学家&#xff08;著有《你好&#xff0c;焦虑分子》&#xff09;核心框架&#xff1a;爱、理性与逻辑 本书提出教养孩子的三大抓手&#xff0c;缺一不可&#xff1a; 爱 → 带来丰富情感与能量&#xff0c;让孩子将来…...

Beyond Compare 5终极激活指南:免费获取永久授权密钥的完整教程

Beyond Compare 5终极激活指南&#xff1a;免费获取永久授权密钥的完整教程 【免费下载链接】BCompare_Keygen Keygen for BCompare 5 项目地址: https://gitcode.com/gh_mirrors/bc/BCompare_Keygen Beyond Compare 5作为业界领先的文件对比工具&#xff0c;其强大的功…...

5分钟搞定OpenCV摄像头实时监控(附Jupyter避坑指南)

5分钟搞定OpenCV摄像头实时监控&#xff08;附Jupyter避坑指南&#xff09; 在计算机视觉领域&#xff0c;实时摄像头监控是最基础也最实用的功能之一。无论是安防监控、人脸识别还是简单的视频采集&#xff0c;OpenCV都提供了简洁高效的接口。但对于Python初学者和Jupyter Not…...

3步解锁Windows 11 LTSC应用商店:企业版系统的应用生态解决方案

3步解锁Windows 11 LTSC应用商店&#xff1a;企业版系统的应用生态解决方案 【免费下载链接】LTSC-Add-MicrosoftStore Add Windows Store to Windows 11 24H2 LTSC 项目地址: https://gitcode.com/gh_mirrors/ltscad/LTSC-Add-MicrosoftStore 在企业环境中部署的Window…...

如何选择ComfyUI-FramePackWrapper的模型加载方案?从技术选型到场景适配全解析

如何选择ComfyUI-FramePackWrapper的模型加载方案&#xff1f;从技术选型到场景适配全解析 【免费下载链接】ComfyUI-FramePackWrapper 项目地址: https://gitcode.com/gh_mirrors/co/ComfyUI-FramePackWrapper 在AI视频生成工作流中&#xff0c;模型加载是影响效率与稳…...

Multisim课程设计救星:从卡诺图到仿真,手把手搞定五人表决器(附源文件)

五人表决器数字电路设计实战&#xff1a;从卡诺图到Multisim仿真的全流程解析 第一次拿到数字电路课程设计任务书时&#xff0c;看着"五人表决器"这个题目&#xff0c;我的大脑和实验室的示波器一样一片空白。直到在面包板上成功点亮第一个LED指示灯&#xff0c;才真…...

FanControl进阶指南:从噪音诊断到智能散热系统构建

FanControl进阶指南&#xff1a;从噪音诊断到智能散热系统构建 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fa…...

PROJECT MOGFACE自动化办公助手:集成Python脚本处理Excel与生成报告

PROJECT MOGFACE自动化办公助手&#xff1a;告别重复劳动&#xff0c;让报告自己“写”自己 你是不是也受够了每周、每月那些格式固定的数据报告&#xff1f;从一堆Excel表格里复制粘贴数据&#xff0c;再绞尽脑汁组织语言&#xff0c;最后排版成一份像样的文档。这个过程枯燥…...