python聚合函数 python聚合函数整数列表求最大,最小,平均值( 四 )


1.2 分组依据的本质
1.3Groupby 对象
通过 ngroups 属性,可以访问分为了多少组:
通过 groups 属性,可以返回从 组名映射到 组索引列表的字典:
当 size 作为 DataFrame 的属性时 , 返回的是表长乘以表宽的大小 , 但在 groupby 对象上表示统计每个组的 元素个数:
通过 get_group 方法可以直接获取所在组对应的行,此时必须知道组的具体名字:
1.4 分组的三大操作
分组的三大操作:聚合、变换和过滤
2.聚合函数
2.1内置聚合函数
包括如下函数: max/min/mean/median/count/all/any/idxmax/idxmin/mad/nunique/skew/quantile/sum/std/var/sem/size/prod
2.2agg 方法
【a】使用多个函数
当使用多个聚合函数时,需要用列表的形式把内置聚合函数的对应的字符串传入,先前提到的所有字符串都是合法的 。
【b】对特定的列使用特定的聚合函数
对于方法和列的特殊对应 , 可以通过构造字典传入 agg 中实现,其中字典以列名为键,以聚合字符串或字符串列表为值 。
【c】使用自定义函数
在 agg 中可以使用具体的自定义函数,需要注意传入函数的参数是之前数据源中的列,逐列进行计算
【d】聚合结果重命名 如果想要对结果进行重命名,只需要将上述函数的位置改写成元组,元组的第一个元素为新的名字,第二个位置为原来的函数,包括聚合字符串和自定义函数
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怎么学习?学习Python编程技术的流程与步骤,自学与参加培训学习都适用 。
一、清楚学习目标
无论是学习什么知识,都要有一个对学习目标的清楚认识 。只有这样才能朝着目标持续前进,少走弯路,从学习中得到不断的提升 , 享受python学习计划的过程 。
虽然目前的编程语言有很多 , 但是基础语法上的概念 , 本质上都是相通的 。可以做到一通百通 。所以没有必要为了学哪门语言纠结太多 。
python是目前市面上 , 我个人认为是最简洁最优雅最有钱途最全能的编程语言,没有之一 。所以既然你决定了要学习python,那么就需要先下一个决心,至少决定要作为自己的主力语言 。

推荐阅读