2020-12-24

本文详细介绍了Pandas库中数据分组的概念和操作,包括分组依据、分组模式及其对象。文章通过实例演示了如何使用groupby进行分组,并解释了分组的本质。此外,还讲解了Groupby对象的属性和方法,如ngroups、groups、size等。文章进一步探讨了分组操作的三大类型:聚合、变换和过滤,详细阐述了agg、transform、filter函数的使用,以及如何进行跨列分组操作。最后,文章提出了几个与汽车数据集相关的练习题目,用于巩固分组操作的知识。
摘要由CSDN通过智能技术生成

Datawhale提供的pandas学习的开源地址:Joyful Pandas
分组
分组模式及其对象
分组的一般模式
分组操作在日常生活中使用极其广泛,例如:
• 依据 性别分组,统计全国人口 寿命的 平均值
• 依据 季节分组,对每一个季节的 温度进行 组内标准化
• 依据 班级分组,筛选出组内 数学分数的 平均值超过 80 分的班级
从上述的几个例子中不难看出,想要实现分组操作,必须明确三个要素:
分组依据、数据来源、操作及其返回结果。同时从充分性的角度来说,如果明确了这三方面,就能确定一个分组操作,从而分组代码的一般模式即:
df.groupby(分组依据)[数据来源].使用操作

df.groupby('Gender')['Longevity'].mean()

现在返回到学生体测的数据集上,如果想要按照性别统计身高中位数,就可以如下写出:
在这里插入图片描述在这里插入图片描述
分组依据的本质
前面所提都是单一维度进行分组的。对应多个维度分组,只需在 groupby 中传入相应列名构成的列表即可。例如,现想根据学校和性别进行分组,统计身高的均值就可以如下写出:
在这里插入图片描述
目前为止,groupby 的分组依据都是直接可以从列中按照名字获取的,那如果想要通过一定的复杂逻辑来分组,例如根据学生体重是否超过总体均值来分组,同样还是计算身高的均值。
首先应该先写出分组条件:

 condition = df.Weight > df.Weight.mean()

在这里插入图片描述
从索引可以看出,其实最后产生的结果就是按照条件列表中元素的值(此处是 True 和 False )来分组,下面用随机传入字母序列来验证这一想法:
在这里插入图片描述
此处的索引就是原先 item 中的元素,如果传入多个序列进入 groupby ,那么最后分组的依据就是这两个序列对应行的唯一组合:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值