首页 > 解决方案 > 当使用 Pandas .groupby 时,为什么使用 .agg 而不是直接使用函数,例如 .sum()

问题描述

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

标签: pythonpandaspandas-groupby

解决方案


设置

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

文档agg中说明了使用的主要好处:

在指定轴上使用一项或多项操作进行聚合。

如果您有需要应用于每个单独列的单独操作,请使用agg允许您在单个语句中创建该映射的字典(或函数、字符串或字符串/函数列表)。因此,如果您想要sumof columnameanof column b

df.agg({'a': 'sum', 'b': 'mean'})

a    6.0
b    5.0
dtype: float64

它还允许您将多个操作应用于单个语句中的单个列。例如,要查找summeanstda

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是应用多个操作的便利。


推荐阅读