如何避免网站模板侵权,免费的wordpress分类在哪设置,广西互联网推广,蓝色科技企业网站模板免费下载分组
分组的关键要素是#xff1a;
分组依据、数据来源、操作及其返回结果。
df.groupby(分组依据)[数据来源].使用操作对学生按照性别统计身高中位数。
print(df.groupby(Gender)[Height].median())上面是一维度进行分组#xff0c;如果要根据多个维度分组#xff0c;则…分组
分组的关键要素是
分组依据、数据来源、操作及其返回结果。
df.groupby(分组依据)[数据来源].使用操作对学生按照性别统计身高中位数。
print(df.groupby(Gender)[Height].median())上面是一维度进行分组如果要根据多个维度分组则只需要传入相应列名构造的列表即可。
例如按照学校、性别统计身高的中位数。
print(df.groupby([School, Gender])[Height].median())如果希望通过一定的复杂逻辑来分组例如根据学生体重是否超过总体均值来分组同样还是计算身高的中位数。
print(df.groupby(df[Weight] df[Weight].mean())[Height].mean()
)print(df.groupby(df.iloc[:,5] df.iloc[:,5].mean())[Height].mean()
)通过ngroups属性可以得到分组个数
gb df.groupby(df.iloc[:,5] df.iloc[:,5].mean())
print(gb.ngroups)通过groups属性可以返回从组名映射到组索引列表的字典
res gb.groups
print(res.keys())groupby对象上表示统计每个组的元素个数
print(gb.size())通过get_group方法可以直接获取所在组对应的行此时必须知道组的具体名字
print(gb.get_group(True).head())分组的三大操作聚合、变换和过滤分别对应agg、transform和filter函数及其操作。
聚合
返回标量
内置聚合函数
包括如下函数max/min/mean/median/count/all/any/idxmax/idxmin/mad/nunique/skew/quantile/sum/std/var/sem/size/prod。
gb df.groupby(Gender)[Height]
print(gb.idxmin())agg方法
groupby对象虽然定义了很多方便的函数但是有以下缺点
无法同时使用多个函数无法对特定的列使用特定的聚合函数无法使用自定义的聚合函数无法直接对结果的列名在聚合前进行自定义命名
使用多个函数
当使用多个聚合函数时需要用列表的形式把内置聚合函数对应的字符串传入先前提到的所有字符串都是合法的。
gb df.groupby(Gender)[Height]
print(gb.agg([sum, idxmax, skew]))对特定的列使用特定的聚合函数
对于方法和列的特殊对应可以通过构造字典传入agg中实现其中字典以列名为键以聚合字符串或字符串列表为值。
gb df.groupby(Gender)
print(gb.agg({Height:[mean,max], Weight:count}))使用自定义函数
可以在agg中使用具体的自定义函数需要注意传入函数的参数是之前数据源中的列。
gb df.groupby(Gender)[Height]
print(gb.agg(lambda x: x.mean()-x.min()))聚合结果重命名
如果想要对聚合结果的列名进行重命名只需要将上述函数的位置改写成元组元组的第一个元素为新的名字第二个位置为原来的函数包括聚合字符串和自定义函数。
gb df.groupby(Gender)[Height]
print(gb.agg([(range, lambda x: x.max()-x.min()), (my_sum, sum)]))对一个或者多个列使用单个聚合的时候重命名需要加方括号否则就不知道是新的名字还是手误输错的内置函数字符串。 变换和过滤
换函数的返回值为同长度的序列最常用的内置变换函数是累计函数cumcount/cumsum/cumprod/cummax/cummin它们的使用方式和聚合函数类似只不过完成的是组内累计操作。 过滤在分组中是对于组的过滤而索引是对于行的过滤在第二章中的返回值无论是布尔列表还是元素列表或者位置列表本质上都是对于行的筛选即如果符合筛选条件的则选入结果表否则不选入。 组过滤作为行过滤的推广指的是如果对一个组的全体所在行进行统计的结果返回True则会被保留False则该组会被过滤最后把所有未被过滤的组其对应的所在行拼接起来作为DataFrame返回。 gb df.groupby(Gender)[Height]
print(gb.size())
print(gb.filter(lambda x: x.shape[0] 100).head())Joyful-Pandas-课程详情 | Datawhale