在对数据进行处理的时候,分组与聚合是非常常用的操作。在Pandas中此类操作主要是通过groupby函数来完成的。
先看一个实际的例子:
1 | # 生成一个原始的DataFrame |
通过groupby函数生成一个groupby对象,如下:
1 | # 当针对特定列(此例是'preTestScore')进行分组时,需要通过df['colume_name'](此例是df['regiment'])来指定键名 |
整个分组统计的过程,可以通过下图更清晰地展示:
聚合函数
聚合的时候,既可以使用Pandas内置的函数进行聚合计算,也可以使用自定义的函数进行聚合计算,我们先来看下内置的函数:
另外,我们也可以自定义聚合函数:
1 | In [81]: def my_agg(pre_test_score_group): |
通过上面的例子我们可以看到,通过apply函数也可以完成类似for循环的迭代,在pandas中尽可能使用apply函数来代替for循环迭代,以提高性能。
根据多个键进行分组和聚合
1 | # 如果有多个键,将多个键放到一个list当中,作为groupby的参数 |
v1.5.2