首页 > 后端开发 > Python教程 > 如何使用 Pandas GroupBy.agg() 对同一列执行多个聚合?

如何使用 Pandas GroupBy.agg() 对同一列执行多个聚合?

Patricia Arquette
发布: 2024-12-06 17:50:15
原创
1057 人浏览过

How Can I Perform Multiple Aggregations on the Same Column Using Pandas GroupBy.agg()?

使用 Pandas GroupBy.agg() 在同一列上进行多个聚合

在 pandas 中,GroupBy.agg() 可以方便地聚合通过对每一列应用函数来获取数据。然而,当将不同的函数应用于同一列时,有必要多次调用 agg()。

传统(不正确)方法:

直观简单的方法是be:

df.groupby("dummy").agg({
    "returns": f1, 
    "returns": f2
})
登录后复制

不幸的是,由于重复,这会导致错误键。

解决方案:

由于 agg() 需要一个字典,所以简单的解决方案是创建一个包含列名和函数列表的字典:

df.groupby("dummy").agg({
    "returns": [f1, f2]
})
登录后复制

这将产生一个具有两个聚合输出的多索引 DataFrame。

示例:

考虑以下 DataFrame:

import pandas as pd
import datetime as dt
import numpy as np

pd.np.random.seed(0)
df = pd.DataFrame({
    "date": [dt.date(2012, x, 1) for x in range(1, 11)],
    "returns": 0.05 * np.random.randn(10),
    "dummy": np.repeat(1, 10)
})
登录后复制

将均值和总和应用于“返回”列:

df.groupby("dummy").agg({
    "returns": ["mean", "sum"]
})
登录后复制

这将产生:

           returns          
           mean       sum
dummy                    
1      0.036901  0.369012
登录后复制

以上是如何使用 Pandas GroupBy.agg() 对同一列执行多个聚合?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板