groupby和agg
时间: 2023-12-06 17:05:42 浏览: 245
aggie for group
groupby和agg是pandas中常用的数据分组和聚合函数。groupby函数可以将数据按照指定的列进行分组,然后对每个分组进行聚合计算。agg函数可以对不同的列使用不同的聚合计算,而且还可以自定义聚合函数。具体使用方法如下:
1. groupby函数的使用
```python
import pandas as pd
import numpy as np
# 创建一个DataFrame
df = pd.DataFrame({
'key1': ['a', 'a', 'b', 'b', 'a'],
'key2': ['x', 'y', 'y', 'x', 'y'],
'data1': np.random.randint(0, 10, 5),
'data2': np.random.randint(10, 20, 5)
})
# 按照key1列进行分组,并计算data1和data2的平均值
res1 = df.groupby('key1').mean()
# 按照key1和key2列进行分组,并计算data1和data2的平均值
res2 = df.groupby(['key1', 'key2']).mean()
# 按照key1列进行分组,并计算data1的最大值、data2的最小值和数量
res3 = df.groupby('key1').agg({'data1': 'max', 'data2': 'min', 'key2': 'count'})
```
2. agg函数的使用
```python
# 自定义聚合函数
def my_mean(arr):
return arr.mean()
# 按照key1列进行分组,并计算data1的最大值、data2的最小值和数量,以及自定义聚合函数my_mean的结果
res4 = df.groupby('key1').agg({'data1': 'max', 'data2': 'min', 'key2': 'count', 'data1': my_mean})
```
阅读全文