2 回答

TA贡献1802条经验 获得超5个赞
设置
df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})
使用文档的主要好处agg在docs中进行了说明:
使用指定轴上的一项或多项操作进行汇总。
如果需要将单独的操作应用于每个单独的列,请agg使用字典(或函数,字符串或字符串/函数列表),该字典允许您在单个语句中创建该映射。因此,如果您想要sumof的列a,以及themean的列b:
df.agg({'a': 'sum', 'b': 'mean'})
a 6.0
b 5.0
dtype: float64
它还允许您在单个语句中将多个操作应用于单个列。例如,要查找sum,mean和std列a:
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提供的主要好处是应用多个操作的便利。

TA贡献1946条经验 获得超3个赞
groupby('variable').agg('sum')如果只传递一个函数,使用可能会过大。通常用于汇总多个功能,例如.agg(['sum', 'mean'])。
当仅传递一个函数时,结果应该是相同的,尽管在.agg()解析参数时会产生更多的开销。
>>> from pandas.util import testing as tm
>>> import numpy as np
>>> np.random.seed(444)
>>> df = tm.makeDataFrame()
>>> grp = df.groupby(df['A'] > 0)
>>> a = grp.agg('sum')
>>> b = grp.sum()
>>> tm.assert_frame_equal(a, b)
.agg()具有多种功能的典型用法如下:
>>> grp[['A', 'C']].agg(('sum', 'mean'))
A C
sum mean sum mean
A
False -16.111352 -0.805568 0.423394 0.021170
True 9.435939 0.943594 4.788035 0.478803
添加回答
举报