DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(四)

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介: DataFrame(14):对比MySQL学习“Pandas的groupby分组聚合”(超详细)(四)

④ Series:分组排序(很重要)

df = pd.DataFrame({"部门":["A", "A", "A", "B", "B", "B"],
                   "利润":[10, 32, 20, 15, 28, 10], 
                   "销售量":[20, 15, 33, 18, 30, 22]})
display(df)
df["排名"] = df["销售量"].groupby(df["部门"]).rank()
df

结果如下:

image.png


⑤ 自定义函数:将部门A、B分为一组,C单独成为一组(很特别的需求)

df = pd.DataFrame({"部门":["A", "A", "B", "B", "C", "C"],
                   "小组":["g1", "g2", "g1", "g2", "g1", "g2"], 
                   "利润":[10, 20, 15, 28, 12, 14], 
                   "人员":["a", "b", "c", "d", "e", "f"], 
                   "年龄":[20, 15, 18, 30, 23, 34]})
df = df.set_index("部门")
display(df)
def func(x):
    if x=="A" or x=="B":
        return 0
    else:
        return 1
g = df.groupby(func)
display(g)
for (x,y) in g:
    display(x, y)


结果如下:

image.png


4、agg()聚合操作的相关说明

 当使用了groupby()分组的时候,得到的就是一个分组对象。当没有使用groupby()分组的时候,整张表可以看成是一个组,也相当于是一个分组对象。

 针对分组对象,我们既可以直接调用聚合函数sum()、mean()、count()、max()、min(),还可以调用分组对象的agg()方法,然后像agg()中传入指定的参数。


1)直接针对分组对象,调用聚合函数

① 针对df整张表,直接调用聚合函数

df = pd.DataFrame({"部门":["A", "A", "B", "B", "C", "C"],
                   "小组":["g1", "g2", "g1", "g2", "g1", "g2"], 
                   "利润":[10, 20, 15, 28, 12, 14], 
                   "人员":["a", "b", "c", "d", "e", "f"], 
                   "年龄":[20, 15, 18, 30, 23, 34]})
display(df)
df["利润"].mean()
df[["年龄","利润"]].mean()


结果如下:

image.png


② 针对df分组后的对象,直接调用聚合函数

df = pd.DataFrame({"部门":["A", "A", "B", "B", "C", "C"],
                   "小组":["g1", "g2", "g1", "g2", "g1", "g2"], 
                   "利润":[10, 20, 15, 28, 12, 14], 
                   "人员":["a", "b", "c", "d", "e", "f"], 
                   "年龄":[20, 15, 18, 30, 23, 34]})
display(df)
df.groupby("部门")["利润"].mean()
df.groupby("部门").mean()


结果如下:

image.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
30天前
|
SQL 关系型数据库 MySQL
在 MySQL 中使用 `GROUP BY` 子句
【8月更文挑战第12天】
43 1
|
7天前
|
SQL 关系型数据库 MySQL
学习MySQL操作的有效方法
学习MySQL操作的有效方法
19 3
|
6天前
|
SQL 关系型数据库 MySQL
如何学习 MySQL?
如何学习 MySQL?
18 3
|
13天前
|
索引 Python
Pandas学习笔记之Dataframe
Pandas学习笔记之Dataframe
|
21天前
|
数据挖掘 大数据 数据处理
数据分析师的秘密武器:精通Pandas DataFrame合并与连接技巧
【8月更文挑战第22天】在数据分析中,Pandas库的DataFrame提供高效的数据合并与连接功能。本文通过实例展示如何按员工ID合并基本信息与薪资信息,并介绍如何基于多列(如员工ID与部门ID)进行更复杂的连接操作。通过调整`merge`函数的`how`参数(如'inner'、'outer'等),可实现不同类型的连接。此外,还介绍了使用`join`方法根据索引快速连接数据,这对于处理大数据集尤其有用。掌握这些技巧能显著提升数据分析的能力。
36 1
|
21天前
|
关系型数据库 MySQL 数据处理
Mysql关于同时使用Group by和Order by问题
总的来说,`GROUP BY`和 `ORDER BY`的合理使用和优化,可以在满足数据处理需求的同时,保证查询的性能。在实际应用中,应根据数据的特性和查询需求,合理设计索引和查询结构,以实现高效的数据处理。
164 1
|
23天前
|
SQL 关系型数据库 MySQL
学习mysql基础操作
【8月更文挑战第20天】学习mysql基础操作
27 1
|
21天前
|
数据采集 数据挖掘 数据处理
解锁Python数据分析新技能!Pandas实战学习,让你的数据处理能力瞬间飙升!
【8月更文挑战第22天】Python中的Pandas库简化了数据分析工作。本文通过分析一个金融公司的投资数据文件“investment_data.csv”,介绍了Pandas的基础及高级功能。首先读取并检查数据,包括显示前几行、列名、形状和数据类型。随后进行数据清洗,移除缺失值与重复项。接着转换日期格式,并计算投资收益。最后通过分组计算平均投资回报率,展示了Pandas在数据处理与分析中的强大能力。
29 0
|
28天前
|
SQL 数据采集 JSON
Pandas 使用教程 Series、DataFrame
Pandas 使用教程 Series、DataFrame
30 0
|
1月前
|
存储 关系型数据库 MySQL
MySQL中的DISTINCT与GROUP BY:效率之争与实战应用
【8月更文挑战第12天】在数据库查询优化中,DISTINCT和GROUP BY常常被用来去重或聚合数据,但它们在实现方式和性能表现上却各有千秋。本文将深入探讨两者在MySQL中的效率差异,结合工作学习中的实际案例,为您呈现一场技术干货分享。
145 0