在实际的数据分析过程中,我们把原始数据集,进行分组处理之后,往往需要对分组结果中的,各个小组的数据进行不同的操作。这就需要对我们的分组结果对象,通过循环迭代的方式,访问和操作不同组内部的数据元素。
在组中迭代
我们先来生成原始模拟数据集
然后对A列进行分组,并且循环访问分组中的数据
我们可以看到,通过for循环语句,我们分别可以拿到子分组名称name,和子分组数据group,这个过程是循环自动进行的。如果我们要对子分组进行操作的话,则需要在for循环中,编写操作代码。如果我们要访问子分组中的数据元素,则需要在for循环语句中,再嵌套一个for循环,才能访问到子分组中的数据元素。
我们还可以通过get_group函数,选择某一个单一的子分组,这样可以单独对子分组进行操作处理。
分组的聚合操作
在对原始数据完成分组处理后,我们经常需要查看各个子分组的汇总数据,平均数据等等情况,这个过程,就是分组数据的聚合操作。
我们重新生成一个数据集
然后通过kind列,对数据进行分组,并且对各个子分组进行求和操作。
这样,就得到了各个子组的,另外两列的汇总数据。
这里,默认是使用kind分组列,作为汇总数据集的数据标签索引列。
我们也可以重新生成索引,如下所示
只需要设置as_index属性为false即可,这样可以让数据更加整洁美观,并且有序。
类似于sum这样的聚合函数,还有很多。我整理了一个表格,大家可以参照着使用。
比如说,我们要查看均值和方差的话,就需要用到mean和var函数。
通过以上聚合函数,可以让我们对分组数据,进行一些简单的统计分析,得出各个子分组的相关统计项。
我们还可以通过describe函数,对各个子分组,进行描述性数据展示,可以计算各个子分组的各项统计数据。
aggregate()聚合函数方法
为了让分组数据的聚合操作更加直观,更加通俗易懂,我们可以使用aggregate()函数,对分组后的数据进行聚合操作。
上述代码,就是先对A列进行分组,然后通过aggregate()函数,对分组后的数据进行sum的汇总聚合操作。
注意,这里聚合的列是C和D两列。
以下是更加简易的聚合方法
重新生成数据标签索引
也可以使用reset_index函数,重新生成索引
可以看出,重新生成索引之后,聚合后的结果数据集,更加整理,美观。
以上就是我们groupby第二部分的内容。