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

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 等同于size
mad 平均绝对偏差
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为累计最小值,

你可能感兴趣的:(Python数据分析,pandas数据分析,Pandas,groupby函数大全)