使用 GroupBy 对同一列上的多个函数进行聚合
在 Python 的 pandas 库中,GroupBy.agg() 函数提供了一种便捷的方法将聚合函数应用于分组数据。然而,值得注意的是,将多个函数应用于同一列可能会很棘手。
最初,使用以下语法似乎很直观:
df.groupby("dummy").agg({"returns": f1, "returns": f2})
但是,这种方法会失败,因为Python 中不允许重复键。相反,pandas 提供了几种执行此类聚合的方法:
方法 1:函数列表
函数可以作为列表传递:
df.groupby("dummy").agg({"returns": [np.mean, np.sum]})
方法2:字典函数
函数可以作为字典传递,其中键代表列名,值代表函数列表:
df.groupby("dummy").agg({"returns": {"Mean": np.mean, "Sum": np.sum}})
方法 3:最近更新(如2022-06-20)
在最新版本的 pandas 中,以下语法是首选:
df.groupby('dummy').agg( Mean=('returns', np.mean), Sum=('returns', np.sum))
此语法不仅可以无缝运行,而且在指定聚合函数和列名称方面提供了更高的清晰度和灵活性。
以上是如何使用 pandas GroupBy 将多个聚合函数应用于同一列?的详细内容。更多信息请关注PHP中文网其他相关文章!