• pandas 的groupby()


    groupby():

    groupby函数可以将一个df根据某一列或者某几列分组又或者是函数分组,经过groupby后会生成一个groupby对象,该对象本身不会返回任何内容,只有当相应的方法被调用时才会起作用

    1.根据某一列分组

    2.根据某几列分组,和根据某列分组用法基本一致

    3.查看组容量和组数(size)

    4.组的遍历,得到的组内数据分别是一个个df

    5.head()和first()

    6.[col].数学统计变量,即是计算每个分组该列的数学统计值

    7.聚合函数(mean/sum/size/count/std/var/sem/describe/first/last/nth/min/max)和agg

    我们使用iris数据做例子

    from sklearn.datasets import load_iris
    import pandas as pd 
    import numpy as np
    iris=load_iris()
    df=pd.DataFrame(iris.data,columns=iris.feature_names)
    df['sample']=iris.target

    1.根据某一列分组

    #根据sample分组
    group_sample=df.groupby('sample')
    
    #get_group()是查看某一分组,比如说上面的sample有三种类别,我们可以使用get_group()查看某一类别
    group_sample.get_group(0).head()

    2.根据某几列分组,和根据某列分组用法基本一致

    #列名需要以list形式传入
    group_n=df.groupby(['petal width (cm)', 'sample'])
    
    group_n.get_group((0.1,0))

    3.查看组容量和组数(size)

    #调用get_group时可以先查看一个有几种分组,组内的容量是怎么样的
    group_n.size()

    4.组的遍历,得到的组内数据分别是一个个df

    #name,group 分别是组名和组内数据
    for name,group in group_n:
        print(name)
        print(group.head())

    5.head()和first()

    #head()返回的是每个组的前某几行,而不是数据集的前几行
    group_n.head(2)
    
    #first()返回的每个分组的第一行信息,组成了一个df 
    group_n.first()

    6.[col].数学统计变量,即是计算每个分组该列的数学统计值

    #计算每个分组的某列的平均值
    group_n['sepal length (cm)'].mean()
    
    #返回的布尔型的值
    group_n['sepal length (cm)'].mean()>5

     

    7.聚合函数(mean/sum/size/count/std/var/sem/describe/first/last/nth/min/max),用法上面例子有,就不赘述了,

    下面主要说一下agg()同时使用多个聚合函数

    #计算每组每个特征的平均值
    group_n.mean()
    
    #同时使用多个聚合函数
    group_n.agg(('sum','mean'))
    group_n.agg(['sum','mean'])
    
    #和上面一样,只不过是重新命名了
    group_n.agg([('rename_sum','sum'),('rename_mean','mean')])
    
    #指定某一列使用某些函数,以字典形式传入
    group_n.agg({'sepal length (cm)':['mean','max'],'sepal width (cm)':'var'})
    
    #使用匿名函数或者自定义函数
    group_n.agg(lambda x:x.max()-x.min())
  • 相关阅读:
    蛋疼的j2ee空指针异常
    编译原理 (预处理>编译>汇编>链接)(转)
    自己写的注册表 键值拷贝 函数 RegCopyTree
    十招教你从程序员转向企业家(转)
    pyCharm使用申请的学生免费JetBrains Account登录时失败,弹出"Your host may be behind a proxy..."
    sharepoint:苹果设备访问设置(包括打开infopath表单) 金大昊(jindahao)
    sharepoint:workflow权限代码示例 金大昊(jindahao)
    sharepoint:各种阀值 金大昊(jindahao)
    infopath:部署有代码的表单,任务没有跑 金大昊(jindahao)
    谁在排斥sharepoint 金大昊(jindahao)
  • 原文地址:https://www.cnblogs.com/cgmcoding/p/13322685.html
Copyright © 2020-2023  润新知