python的agg函数 python中agg函数( 三 )


3 变换和过滤
3.1 变换函数与 transform 方法
变 换 函 数 的 返 回 值 为 同 长 度 的 序 列, 最 常 用 的 内 置 变 换 函 数 是 累 计 函 数:cum- count/cumsum/cumprod/cummax/cummin ,它们的使用方式和聚合函数类似,只不过完成的是组内 累计操作 。
3.2 组索引与过滤
过滤在分组中是对于组的过滤,而索引是对于行的过滤
组过滤作为行过滤的推广,指的是如果对一个组的全体所在行进行统计的结果返回 True 则会被保留 , False 则该组会被过滤,最后把所有未被过滤的组其对应的所在行拼接起来作为 DataFrame 返回 。
在 groupby 对象中,定义了 filter 方法进行组的筛选,其中自定义函数的输入参数为数据源构成的 DataFrame 本身,在之前例子中定义的 groupby 对象中,传入的就是 df[['Height', 'Weight']] ,因此所有表方法和属性 都可以在自定义函数中相应地使用 , 同时只需保证自定义函数的返回为布尔值即可 。
4 跨列分组
4.1 apply 的引入
4.2 apply 的使用
在设计上,apply 的自定义函数传入参数与 filter 完全一致,只不过后者只允许返回布尔值
【a】标量情况:结果得到的是 Series  , 索引与 agg 的结果一致
【b】Series 情况:得到的是 DataFrame,行索引与标量情况一致 , 列索引为 Series 的索引
【c】DataFrame 情况:得到的是 DataFrame ,行索引最内层在每个组原先 agg 的结果索引上,再加一层返 回的 DataFrame 行索引,同时分组结果 DataFrame 的列索引和返回的 DataFrame 列索引一致
python--pandas分组聚合groupby 方法是pandas中python的agg函数的分组方法python的agg函数 , 对数据框采用 groupby 方法后,返回的是 DataFrameGroupBy 对象 , 一般分组操作后会进行聚合操作 。
对数据框按 A 列进行分组,产生分组数据框 。分组数据框是可迭代对象,可以进行循环遍历,可以看出在循环中,每个元素的类型是元组 , 
元组的第一个元素是分组值 , 第二个元素是对应的分组数据框 。
可以对分组后的数据框直接使用聚合方法 agg ,对分组数据框的每一列计算统计函数值 。
可以根据数据框外的序列数据对数据框进行分组,需要注意 序列长度需要与数据框行数相同。
可以根据数据框的多列对数据框进行分组 。
根据 A , B 列进行分组,然后求和 。
可以根据索引对数据框进行分组,需要设置 level 参数 。
数据框只有一层索引 , 设置参数 level=0。
当数据框索引有多层时,也可以根据需求设置 level 参数,完成分组聚合 。
设置 level 参数 , 如需要根据第一层索引 , 即 id1 进行分组,可以设置 level=0 或 level='id1' 完成分组聚合 。
分组后一般会进行聚合操作,用 agg 方法进行聚合 。
对分组后数据框使用单个函数进行聚合,单个聚合函数会对每列进行计算,然后合并返回 。聚合函数以字符串的形式传入 。
可以对分组后的数据指定列进行分组聚合 。需要注意 子列需要用[]包裹。
聚合函数也可以传入自定义的匿名函数 。
聚合函数可以是多个函数 。聚合时 , 多个聚合函数会对每列进行计算,然后合并返回 。聚合函数以列表的形式传入 。
聚合返回后的数据列名有两层索引,第一层是聚合的列名,第二层是使用的聚合函数名 。如果需要对返回的聚合函数名重命名 , 
需要在传参时,传入元组,第一个元素为聚合函数名,第二个元素为聚合函数 。
同样,也可以传入匿名函数 。

推荐阅读