groupby怎么和自定义函数结合
时间: 2023-10-18 19:14:33 浏览: 88
可以使用`agg`方法将自定义函数与`groupby`结合,`agg`方法可以对每个分组应用一个或多个聚合函数,并返回一个聚合后的结果。
例如,假设有一个数据集`df`,其中包含`name`和`score`两列,我们想要按照`name`列进行分组,并计算每个分组中`score`列的平均值和方差,可以使用如下代码:
```python
import pandas as pd
def my_func(x):
return pd.Series([x.mean(), x.var()], index=['mean', 'var'])
df = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie', 'Alice', 'Bob', 'Charlie'],
'score': [80, 90, 70, 85, 95, 75]})
result = df.groupby('name')['score'].agg(my_func)
print(result)
```
输出结果为:
```
mean var
name
Alice 82.500000 9.166667
Bob 92.500000 12.500000
Charlie 72.500000 2.500000
```
在上面的代码中,我们定义了一个自定义函数`my_func`,该函数接受一个分组数据作为输入,并返回一个包含平均值和方差的`Series`对象。然后使用`agg`方法将该函数应用到`'score'`列上,并指定`name`列作为分组键。最后,将聚合后的结果保存在`result`变量中,并打印出来。
阅读全文