美文网首页Python数据分析我爱编程
19、pandas的分组groupby()函数

19、pandas的分组groupby()函数

作者: 让数据告诉你 | 来源:发表于2017-12-28 15:10 被阅读0次

    在数据处理的过程中,经常也要进行简单的运算,如果能够配合函数进行使用就会得到更好的结果。

    源数据

    1、加+, 减-,乘* ,除/ ,乘方**,取余数 %

    根据Series和DataFrame的结构特征,进行运算时,结构中的每个数据都会计算。

    同一列也可以相加 除法运算

    2、还有一些常用的运算函数

    count()                    计数,非空值的数量

    min(), max()            计算最小值和最大值

    argmin,argmax        计算能够获取到最小值和最大值的索引位置(整数)

    idxmin,idxmax        计算能够获取到最小值和最大值的索引值

    sum()                      求和

    mean ()                    值的平均数, a.mean() 默认对每一列的数据求平均值;若加上参数  a.mean(1)则对每一行求平均值

    media()                    值的算术中位数(50%分位数)

    quantile(0.25)          计算样本的百分位数

    var()                          样本值的方差

    std ()                        样本值的标准差

    cumsum()                样本值的累计和



    对每一列的数值进行计算(只计算数值列需要指定参数numeric_only=True):

    对数值列进行求和

    当df.sum()不指定参数时会将每一列都进行求和,非数值的求和是将字符串进行拼接。

    也可以指定每行进行求和(指定参数axis=1进行每行求和,每行求和默认只对数值型数据进行求和):

    指定axis=1进行每行求和

    还有如果DataFrame有多层索引,可以添加参数 level='索引层的名称', df.sum(level='索引层名称')就能根据索引层次的数据进行分组运算。


    3、这些简单汇总运算可以跟groupby()、merge()、 concat()、pivot_table()等等连在一起使用。

    groupby()就是将数据根据指定的列进行分组,分组后不能返回有用的结果,需要与其它运算合起来才能出结果

    分组求和

    由上图可知如果仅仅是进行分组是不显示出数据的,只要在分组之后加上一个运算函数就会得出想要的结果。

    计算每个com_name的数量

    在前面进行分组的时候,默认是将分组的依据那一列作为索引的,我们可以添加参数as_index=False来使用常用的索引:

    使用as_index=False改变默认索引  

    使用参数axis=1进行横向分组(横向分组的时候不能使用参数as_index=False):

    使用参数axis=1进行横向分组

    在使用merge()、concat()将汇总运算结果合并之前,请确认你的运算结果是个DataFrame结构。

    数据为 DataFrame结构

    使用concat()函数:

    concat()函数拼接

    因为df2是具有两列的数值,其它列为空值,所以拼接之后其它列显示为空值。

    使用merge()函数:

    df2列名重命名 计算每个相同com_name的平均值 使用merge进行合并

    也可以把默认的merge索引取消(as_index=False),然后使用left_on和right_on进行合并:

    使用left_on和right_on进行合并

    相关文章

      网友评论

        本文标题:19、pandas的分组groupby()函数

        本文链接:https://www.haomeiwen.com/subject/lwvmgxtx.html