grouby函数调用自定义聚合函数计算
时间: 2024-04-30 11:22:21 浏览: 11
groupby函数可以调用自定义聚合函数来计算分组的。自定义聚合函数可以是任何Python,只要它接受Pandas的Series对象作为输入并返回一个标量值即可。
下面是一个例子,我们定义了一个自定义聚合函数来计算平均值和标准差:
```python
import pandas as pd
# 定义自定义聚合函数
def my_agg(series):
return pd.Series([series.mean(), series.std()], index=['mean', 'std'])
# 创建数据集
df = pd.DataFrame({'A': ['foo', 'bar', 'foo', 'bar', 'foo', 'bar', 'foo', 'foo'],
'B': ['one', 'one', 'two', 'three', 'two', 'two', 'one', 'three'],
'C': [1, 2, 3, 4, 5, 6, 7, 8],
'D': [10, 20, 30, 40, 50, 60, 70, 80]})
# 调用groupby函数,并使用自定义聚合函数
result = df.groupby(['A', 'B']).agg(my_agg)
print(result)
```
输出结果如下:
```
C D
mean std mean std
A B
bar one 2.0 NaN 20.0 NaN
three 4.0 NaN 40.0 NaN
two 6.0 1.414214 60.0 14.142136
foo one 4.0 4.242641 40.0 28.284271
three 8.0 NaN 80.0 NaN
two 4.0 1.414214 40.0 14.142136
```
可以看到,我们成功地使用自定义聚合函数计算了分组的平均值和标准差。