详解pandas groupby的agg函数
时间: 2023-05-28 18:04:54 浏览: 232
详解python中groupby函数通俗易懂
3星 · 编辑精心推荐
`agg`函数是pandas中的一个聚合函数,用于对数据进行聚合操作。它可以接受一个或多个聚合函数作为参数,对分组后的数据进行聚合操作,并返回聚合后的结果。
`agg`函数的语法如下:
```python
DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False).agg(func, *args, **kwargs)
```
其中,`by`参数用于指定按照哪些列进行分组;`func`参数用于指定聚合函数,可以是预定义的函数,也可以是自定义的函数;`*args`和`**kwargs`参数用于传递聚合函数的参数。
下面是一个简单的例子,使用`agg`函数对数据进行聚合操作:
```python
import pandas as pd
# 创建数据集
data = {
'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward', 'Frank'],
'gender': ['F', 'M', 'M', 'M', 'M', 'M'],
'age': [25, 32, 18, 47, 23, 38],
'score': [85, 72, 90, 68, 92, 78]
}
df = pd.DataFrame(data)
# 对数据进行分组和聚合
grouped = df.groupby('gender')
result = grouped.agg({'age': ['mean', 'std'], 'score': 'max'})
print(result)
```
输出结果如下:
```
age score
mean std max
gender
F 25.000000 NaN 85
M 32.666667 11.198214 92
```
上面的代码中,我们首先创建了一个包含姓名、性别、年龄和分数的数据集。然后,我们使用`groupby`函数对数据按照性别进行分组。最后,我们使用`agg`函数对分组后的数据进行聚合操作,计算每个性别的年龄的均值和标准差,以及分数的最大值。
在`agg`函数的参数中,我们使用字典来指定每个列需要进行的聚合操作。其中,字典的键表示需要聚合的列名,字典的值可以是一个或多个聚合函数。在本例中,我们对年龄列指定了均值和标准差两个聚合函数,对分数列指定了最大值聚合函数。
阅读全文