Press "Enter" to skip to content

Pandas agg() 聚合函数

agg()函数是聚合函数,它可以实现某种统计功能的函数,如果要不同列用求不同统计量,则用字典{‘行名/列名’,‘函数名’}指定。

agg()函数对 Series、DataFrame 以及分组对象都有效

语法:

DataFrame.agg(func=None, axis=0, *args, **kwargs)

func : function(函数), str, list,或者 dict。用于聚合数据的函数。

axis : {0 or ‘index’, 1 or ‘columns’}, 默认 0
如果 0 或者 ‘index’:将函数应用于每列;
如果 1 或者 ‘columns’: 将函数应用于每一行;

*args要传递给“func”的位置参数

**kwargs要传递给“func”的关键字参数


Series.agg

Series.agg 的应用和一般语法中介绍的一样,其中 axis 参数的取值为 {0 or ‘index’},并且不可指定其他值,仅与 DataFrame.agg 做了兼容。

举例:

s = pd.Series([1, 2, 3, 4, 5, 6])

# 结果如下:
0    1      
1    2      
2    3      
3    4      
4    5      
5    6      
dtype: int64

这个时候就可以对这个Series使用agg()聚合函数了,如:

s = pd.Series([10, 22, 30, 41, 54, 60])

result=s.agg('min')

# 得到的结果就是这个Series里面的最小值:10

result=s.agg(['min','max'])

# 得到的结果就是这个Series里面的最小值:10和最大值:60

min    10
max    60
dtype: int64

DataFrame.agg

常用示例:

df=pd.DataFrame({
    'A':[10,20,30],
    'B':[40,50,60],
    'C':[70,80,90]
})

print(df)
# 得到以下结果:

    A   B   C
0  10  40  70
1  20  50  80
2  30  60  90

# 在行上,聚合这些函数
result=df.agg(['sum','min'])

# 得到以下结果:

      A    B    C
sum  60  150  240
min  10   40   70
# 每列有不同的聚合
result=df.agg({
    'A':'sum',
    'B':'mean',
    'C':'max'
})

# 得到以下结果:

A    60.0
B    50.0
C    90.0
dtype: float64
# 在列上聚合
result=df.agg('mean',axis=1)   # axis=1:将函数应用于每一行

# 得到以下结果:

0    40.0
1    50.0
2    60.0
dtype: float64

Pandas 常用的统计函数

  • count() 统计列表中非空手机开的个数
  • nunique() 统计非重复的数据个数
  • sum() 统计列表中所有数值的和
  • mean() 计算列表中数据的平均值
  • median() 统计列表中数据中位数
  • max() 求列表中数据的最大值
  • min() 求列表中数据的最小值

发表评论

您的电子邮箱地址不会被公开。