「Python数据分析」Pandas进阶,使用groupby分组聚合数据(三)

news2024/11/12 15:39:07

​在实际数据分析和处理过程中,我们可能需要灵活对分组数据进行聚合操作。这个时候,我们就需要用到用户自定义函数(User-Defined Functions,UDFs)。

使用用户自定义函数进行聚合

使用用户自定义函数聚合时的性能,通常比不上使用GroupBy的pandas内置方法。所以,在我们使用用户自定义函数的时候,可以考虑将复杂的操作分解为使用内置方法的操作链。

我们先来看一个例子

通过kind列进行分组,把分组后的height列,先转换为int整形,最后通过sum进行加总聚合操作。

注意,这里是int整形,没有小数部分,所以结果是一个整数值。

同时应用多个聚合函数

我们可以在分组完成后,同时使用多个聚合函数,来快速计算得到我们所需的各种统计数据,并且一次性呈现出来。

我们来看以下例子

上述操作过程中,先通过A列进行分组,然后在各个子分组数据集中,通过C列计算总和,均值,标准差,三个统计量。

我们还可以对各个子分组数据集中的多列,进行多个聚合操作,如下所示。

这个过程表示,通过A列分组之后,在得到的各个子分数数据集中,同时计算C列和D列的总和,均值,标准差,三个统计量。

命名聚合

如果我们需要自定义聚合函数的列名的话,可以使用命名聚合操作,也就是改变聚合结果的列名。

还是以animals数据集为例。

这里,我们通过命名聚合函数NamedAgg,对height列进行min最小值的聚合操作,结果数据集的列名,设置为min_height。

也可以使用以下的简化语句

得到的结果是一样的,只是省略参数的赋值过程。如果是对命名聚合操作不熟悉的数据分析人员,建议还是使用上面参数赋值完整的程序语句。

如果只对分组后的数据,各个子分组数据集中,单个数据列进行聚合的话,可以使用下面的命名聚合语句。

这是一个链式语句,从左到右分别是,先对animals数据集,通过kind列进行分组。在分组完成后的各个子分组数据集中,通过height列,进行min和max的聚合操作,最后把min和max聚合操作的结果数据列,改名为min_height和max_height。

对分组数据不同的列应用不同的聚合函数

我们可以通过一个字典数据结构,传入我们需要聚合操作的列名和聚合函数,完成对分组后的子分组数据集,不同的列,进行不同的聚合操作。

这样,我们就可以灵活的,对C列进行数据汇总的聚合操作,对D列进行计算标准差的操作。

总结

以上,就是我们关于GroupBy分组聚合数据的所有内容。GroupBy的知识内容,在实际中用处非常大,运用的时候较多。我们很多的实际当中的业务问题,或者是数据分析问题,都需要先对原始数据集进行GroupBy的分组和聚合操作。

通过GroupBy对数据的处理,可以让我们得到所需的子分组数据集,再对子分组数据集,进行一些业务处理,或者是数据处理的操作,比如说聚合操作,这样,基本上可以解决我们很大一部分的数据分析和处理问题。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2108691.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

联想泄露显示本月推出更便宜的Copilot Plus电脑

联想似乎准备推出新的更实惠的 Copilot Plus 电脑。可靠的爆料者Evan Blass发布了一份来自联想的新闻稿,详细介绍了将在本周晚些时候的IFA展会上宣布的各种Copilot Plus电脑,其中包括两款采用尚未公布的8核高通骁龙X Plus芯片的电脑。 这些新的高通芯片…

Qt 创建一个json数组对象写入文档并从文档读出q

void createJsonArray() { // 创建一个JSON数组 QJsonArray jsonArray; // 创建一些JSON对象并添加到数组中 for (int i 0; i < 3; i) { QJsonObject jsonObject; jsonObject["key" QString::number(i)] "value" QStri…

原点安全荣获“AutoSec Awards 安全之星”优秀汽车数据安全合规方案奖

9月3日&#xff0c;「AutoSec 2024第八届中国汽车网络安全周暨第五届智能汽车数据安全展」在上海盛大开幕。本届大会由谈思实验室和谈思汽车主办、上海市车联网协会联合主办&#xff0c;以汽车“网络数据安全、软件安全、功能安全”为主题&#xff0c;汇聚了国内外的技术专家、…

Meta关闭Spark AR平台:未来规划与影响分析

Meta宣布将关闭其移动AR创作平台Spark AR&#xff0c;这一消息在业界引起了广泛关注。尽管Snap和TikTok在AR滤镜领域取得了巨大成功&#xff0c;但Meta却选择了另一条发展道路。本文将探讨这一决策背后的可能原因及其对未来的影响。 关闭Spark AR平台的背后 硬件为主&#xff…

PyTorch 创建数据集

图片数据和标签数据准备 1.本文所用图片数据在同级文件夹中 ,文件路径为train/’ 2.标签数据在同级文件&#xff0c;文件路径为train.csv 3。将标签数据提取 train_csvpd.read_csv(train.csv)创建继承类 第一步&#xff0c;首先创建数据类对象 此时可以想象为单个数据单元的…

【PyTorch】基础环境如何打开

前期安装可以基于这个视频&#xff0c;本文是为了给自己存档如何打开pycharm和jupyter notebookPyTorch深度学习快速入门教程&#xff08;绝对通俗易懂&#xff01;&#xff09;【小土堆】_哔哩哔哩_bilibili Pycharm 配置 新建项目的时候选择解释器pytorch-gpu即可。 Jupyte…

【C++ 第二十二章】C++的类型转换

1.C语言中的类型转换 在C语言中&#xff0c;如果赋值运算符左右两侧类型不同&#xff0c;或者形参与实参类型不匹配&#xff0c;或者返回值类型与接收返回值类型不一致时&#xff0c;就需要发生类型转化&#xff0c;C语言中总共有两种形式的类型转换&#xff1a;隐式类型转换和…

CDA数据分析一级考试备考攻略

一、了解考试内容和结构 CDA一级考试主要涉及的内容包括&#xff1a;数据分析概述与职业操守、数据结构、数据库基础与数据模型、数据可视化分析与报表制作、Power BI应用、业务数据分析与报告编写等。 CDA Level Ⅰ 认证考试大纲:https://www.cdaglobal.com/certification.h…

一文还原时序数据库 IoTDB 在 TPCx-IoT 的测试全流程!

在云服务硬件环境下&#xff0c;IoTDB 写入、查询、利用资源能力均表现出色&#xff01; 之前&#xff0c;我们为大家介绍了基于 IoTDB 的企业级产品 TimechoDB&#xff0c;在 TPCx-IoT 基准测试中打破世界纪录&#xff0c;取得的双指标第一成绩&#xff0c;和选择 TPCx-IoT 的…

【Python机器学习】核心数、进程、线程、超线程、L1、L2、L3级缓存

如何知道自己电脑的CPU是几核的,打开任务管理器(同时按下:Esc键、SHIFT键、CTRL键) 然后,点击任务管理器左上角的性能选项,观察右下角中的内核:后面的数字,就是你CPU的核心数,下图中我的是16个核心的。 需要注意的是,下面的逻辑处理器:32 表示支持 32 线程(即超线…

【爬虫软件】批量采集短视频博主的主页作品

用python开发的DY爬虫采集软件&#xff0c;可自动按博主抓取其已发布视频数据。 软件界面&#xff1a; 采集结果: 日志记录&#xff1a; 软件说明&#xff1a; 演示视频&#xff1a; https://www.bilibili.com/video/BV1Kb42187qf 讲解文章&#xff1a; https://www.bi…

2024数学建模国赛选题建议+团队助攻资料

目录 一、题目特点和选题建议 二、模型选择 1、评价模型 2、预测模型 3、分类模型 4、优化模型 5、统计分析模型 三、white学长团队助攻资料 1、助攻代码 2、成品论文PDF版 3、成品论文word版 9月5日晚18&#xff1a;00就要公布题目了&#xff0c;根据历年竞赛题目…

QT: Unable to create a debugging engine.

1.问题场景&#xff1a; 第一次安装QT&#xff0c;没有配置debug功能 打开控制面板》程序》找到Kit 重启电脑即可 2.问题场景&#xff1a; qt原本一直好好的&#xff0c;突然有天打开运行调试版本&#xff0c;提示Unable to create a debugging engine.错误。这个是指无法创…

CIOE中国光博会&电巢科技即将联办“智能消费电子创新发展论坛”

在科技浪潮汹涌澎湃的当下&#xff0c;从通信领域的高速光传输&#xff0c;到消费电子中的高清显示与先进成像技术&#xff0c;光电技术的应用范围不断拓展且日益深化。而AIGC 凭借其丰富的内容供给与个性化反馈能力&#xff0c;正为新一代消费电子及智能穿戴产品开辟崭新的发展…

具身智能猜想 ——机器人进化

设想一个机器人进化的仿真模拟环境&#xff0c;可以通过 “基因突变” 产生新功能&#xff0c;让机器人逐步进化。以下是这个进化系统的关键要素和可能的实现步骤&#xff1a; 1. 仿真环境 虚拟世界&#xff1a;创建一个包含多样化任务和挑战的虚拟环境&#xff0c;如探索、抓…

uniapp 实现tabbar图标凸起

实现tabbar图标凸起有两种&#xff0c;第一种是自定义tabbar&#xff0c;第二种就是使用官方的tabbar跟api实现&#xff0c;自定义在体验中不如原生的tabbar&#xff0c;所以我下面展示的是使用官方的tabbar跟api实现 效果如图&#xff1a; 左边是未选中中间的凸起&#xff0c…

深入解密 Elasticsearch 查询优化:巧用 Profile 工具/API 提升性能

1、Elasticsearch Profile 工具介绍 在使用 ES 进行检索查询时&#xff0c;我们常常要去优化一些复杂的查询语句&#xff0c;这里 ES 结合 lucene 的生态制作了 Profile API 和图形化的 Profile 分析界面以供用户使用。 这里我们来简单讲解一下这个工具 API&#xff0c;希望能给…

全双工语音交互

文章目录 微软小冰全双工字节大模型语音交互[Language Model Can Listen While Speaking](https://arxiv.org/html/2408.02622v1) 微软小冰全双工 全双工的定义&#xff1a;一路持续的听&#xff0c;upload audio&#xff1b;一路持续的输出&#xff0c;download audio&#xf…

C#中的Graphics类和SetQuality()自定义方法

在 C# 中&#xff0c;Graphics 类是 System.Drawing 命名空间的一部分&#xff0c;它提供了一组方法和属性&#xff0c;用于在 Windows Forms 应用程序中进行二维绘图。Graphics 对象可以绘制文本、线条、曲线、形状和图像&#xff0c;并可以对它们进行变换和剪辑。 Graphics …

【JAVA入门】Day33 - Collections

【JAVA入门】Day33 - Collections 文章目录 【JAVA入门】Day33 - Collections Collections 是集合的工具类。其包含的方法如下表所示&#xff0c;其中前两个方法最为常用。 以下代码演示了如何创建集合并批量添加数据&#xff0c;然后打乱集合元素顺序&#xff0c;然后用二分法…