python - 当使用 Pandas .groupby 时,为什么使用 .agg 而不是直接使用函数,例如 .sum()
问题描述
在 Python 中,要按组获取摘要,我使用groupby().agg(fx())
; 例如groupby('variable').agg('sum')
。那和直接使用函数有什么区别,例如;groupby('variable').sum()
?
解决方案
设置
df = pd.DataFrame({'a': [1,2,3], 'b': [4,5,6]})
在指定轴上使用一项或多项操作进行聚合。
如果您有需要应用于每个单独列的单独操作,请使用agg
允许您在单个语句中创建该映射的字典(或函数、字符串或字符串/函数列表)。因此,如果您想要sum
of columna
和mean
of column 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
是应用多个操作的便利。
推荐阅读
- javascript - JSON 日期问题
- python - 何时关闭 MySQL 连接 discord.py
- c++ - 父类为模板时,Union 报错
- python - 反垃圾邮件代码也会不断向机器人发送垃圾邮件
- pandas - 如何加快 groupby 的速度?
- html - 为什么我不能用网格创建列?
- python - Django如何编写查询集以获取所有管理员用户并在信号中使用它们作为接收器
- python - Python - 从 8 个布尔字节值生成和 int,反之亦然
- angular - 尝试通过角度发送带有图像的发布请求时出现 400 错误
- esbuild - 将 esbuild 与外部反应一起使用时,我得到不支持“反应”的动态要求