Python-Pandas groupby后可应用函数全解析

    技术2022-07-10  143

    Python-Pandas groupby之后agg的函数最全

    groupby后可以应用agg或apply的函数说明1.shift和diff的应用假如你要根据A分组,计算B列的一阶差分,下面的用法是不对的,会导致分组的索引A列消失正确用法,先将需要分组的列设置为索引,然后上面level=0表示对索引进行分组,这样才会返回带分组列的正确信息 2.cummax和cummin的理解,举个例子就懂了

    groupby后可以应用agg或apply的函数

    函数解释max最大值min最小值mean平均值count计数(不包含空值)describe统计信息(max,min,mean,count同时显示)size行数,即包含空值得count,类似于SQL里面的count(*)last最后一行,就是排序后取最后一个,如果是数值排序,就是最小值,注意不包含NA值first第一行,就是排序后取第一个,如果是数值排序,就是最大值,不包含NA值nth(0)/nth(1)/nth(3)取第n大的行(数),如果是数值,就是取第1大/2大/3大的数值,不包含NA值head(1)/head(2)取前n行,如果是数值就是取前1/2大的数,不包含NA值nlargest和head()一样,取前几个最大的数,不包含NA值sum求和median中位数std标准差var方差prod内积,即连乘,所有数连乘shift移位,时间序列中常用,就是把shift(1)整体数据往下移一行,shift(-1)上移一行diff做差,diff(1)做一阶差,diff(2)做2阶差rank排序,可以设置rank(method=first,min,max,mean方法)nunique去重后的个数,即返回唯一值的个数len等同于sizemad平均绝对偏差cumsum累计和cummax到目前为止的最大值cummin到目前为止的最小值quantile分位数skew偏度kurt峰度

    说明

    1.shift和diff的应用

    假如你要根据A分组,计算B列的一阶差分,下面的用法是不对的,会导致分组的索引A列消失

    df.groupby('A').B.diff(1)或者df.groupby('A').B.shift(1)

    正确用法,先将需要分组的列设置为索引,然后

    df.set_index('A') df.groupby(level=0).B.diff(1)或者df.groupby(level=0).B.shift(1)

    上面level=0表示对索引进行分组,这样才会返回带分组列的正确信息

    2.cummax和cummin的理解,举个例子就懂了

    df A B 0 2.0 1.0 1 3.0 NaN 2 1.0 0.0 df.cummax()分组后取累计最大值 A B 0 2.0 1.0 1 3.0 NaN 2 3.0 1.0 cummin为累计最小值,
    Processed: 0.011, SQL: 9