Skip to main content
 首页 » 编程设计

python之使用 Pandas .groupby 时,为什么要使用 .agg 而不是直接使用函数,例如 .sum()

2025年05月04日13tuyile006

在 Python 中,要按组获取摘要,我使用 groupby().agg(fx());例如 groupby('variable').agg('sum')。那和直接使用该功能有什么区别,例如; groupby('变量').sum() ?

请您参考如下方法:

设置

df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]}) 

使用 agg 的主要好处在 the docs 中说明:

Aggregate using one or more operations over the specified axis.

如果您有单独的操作需要应用于每个单独的列,agg 接受一个字典(或一个函数、字符串或字符串/函数列表),允许您创建该映射在一个声明中。因此,如果您想要 a 列的sum 和 b 列的mean:

df.agg({'a': 'sum', 'b': 'mean'}) 
 
a    6.0 
b    5.0 
dtype: float64 

它还允许您在单个语句中对单个列应用多个操作。例如,要查找 a 列的 sum、mean 和 std:

df.agg({'a': ['sum', 'mean', 'std']}) 
 
        a 
sum   6.0 
mean  2.0 
std   1.0 

当您对单个操作使用 agg 时,结果没有区别。我认为 df.agg('sum') 不如 df.sum() 清晰,但结果是一样的:

df.agg('sum') 
 
a     6 
b    15 
dtype: int64 
 
df.sum() 
 
a     6 
b    15 
dtype: int64 

agg 提供的主要好处是应用多个操作的便利性。