Groupby分类统计

本文介绍了HadleyWickham提出的分组运算方法在Pandas中的应用,包括按列、多列分组,以及如何使用groupby对象进行遍历、处理多重键和转换数据。着重讲解了groupby的用法和不同轴上的分组可能性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:

Hadley Wickham创造了一个用于表示分组运算的术语“split-apply-combine”(拆分-应用-合并)。第一个阶段,pandas对象中的数据会根据你所提供的一个或多个键被拆分(split)为多组。拆分操作是在对象的特定轴上执行的。例如,DataFrame可以在其行(axis=0)或列(axis=1)上进行分组。然后,将一个函数应用(apply)到各个分组并产生一个新值。最后,所有这些函数的执行结果会被合并(combine)到最终的结果对象中。结果对象的形式一般取决于数据上所执行的操作。下图大致说明了一个简单的分组聚合过程。

1. 按列分组

按列分组分为以下三种模式:

第一种:df.groupby(col),返回一个按列进行分组的groupby对象;

第二种:df.groupby([col1,col2]),返回一个按多列进行分组的groupby对象;

第三种:df.groupby(col1)[col2] 或者 df[col2].groupby(col1),两者含义相同,返回按列col1进行分组后col2的值;

首先生成一个表格型数据集:

2 遍历各分组

GroupBy对象支持迭代,可以产生一组二元元组(由分组名和数据块组成)。

例如:对groupby对象进行迭代,并打印出分组名称和每组元素。

关键技术:采用for函数进行遍历,name表示分组名称,group表示分组数据。程序代码如下所示:

对于多重键的情况,元组的第一个元素将会是由键值组成的元组:

当然,你可以对这些数据片段做任何操作。有一个你可能会觉得有用的运算,将这些数据片段做成一个字典:

 groupby默认是在axis=0上进行分组的,通过设置也可以在其他任何轴上进行分组。拿上面例子中的df来说,我们可以根据dtype对列进行分组:

可以如下打印分组:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Burrier_roust

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值