在 Pandas 中对同一列应用多个聚合
在 pandas 中,GroupBy.agg() 提供了一种便捷的方法来执行多个函数分组数据。然而,使用 agg() 将不同的函数应用于同一列似乎具有挑战性。
传统上,语法上不正确但所需的方法是将重复的键传递给 agg() 的字典参数,这不是Python 中允许。
为了解决这个问题,pandas 提供了几个选项:
选项 1:列表元组
截至 2022 年 6 月 20 日,首选方法是向 agg() 提供元组 [(column, function)] 列表,其中每个元组代表要执行的聚合指定列。
df.groupby('dummy').agg( Mean=('returns', np.mean), Sum=('returns', np.sum))
选项 2:嵌套字典
另一种方法是使用嵌套字典,其中外部键是列,内部值是要应用的函数。
df.groupby('dummy').agg({'returns': {'Mean': np.mean, 'Sum': np.sum}})
选项3:函数列表
对于 pandas 的历史版本,另一种选择是将函数作为列表传递给agg() 的字典参数。
df.groupby('dummy').agg({'returns': [np.mean, np.sum]})
通过利用这些选项,您可以方便地对同一列执行多个聚合,而不需要辅助函数或多次显式调用 agg()。
以上是如何将多个聚合应用于 Pandas 中的同一列?的详细内容。更多信息请关注PHP中文网其他相关文章!