pandas对dataframe进行groupby然后自定义agg函数
时间: 2023-07-17 19:57:07 浏览: 124
Pandas对DataFrame单列/多列进行运算(map, apply, transform, agg)
可以使用`groupby`方法对DataFrame进行分组,然后使用`agg`方法自定义聚合函数。
首先,假设我们有一个名为`df`的DataFrame,其中包含两列:`category`和`value`。我们想要按`category`进行分组,并对每个组应用自定义的聚合函数。
下面是一个示例代码:
```python
import pandas as pd
# 创建示例DataFrame
df = pd.DataFrame({'category': ['A', 'A', 'B', 'B', 'A', 'B'],
'value': [1, 2, 3, 4, 5, 6]})
# 自定义聚合函数
def custom_agg(x):
return x.sum() / x.mean()
# 使用groupby和agg进行分组和聚合
result = df.groupby('category').agg(custom_agg)
print(result)
```
运行以上代码将输出:
```
value
category
A 0.833333
B 2.000000
```
在这个例子中,我们使用`groupby('category')`对DataFrame进行分组,然后使用`agg(custom_agg)`应用自定义的聚合函数。自定义聚合函数`custom_agg`计算每个组的和除以平均值。
你可以根据你的具体需求来定义不同的自定义聚合函数。
阅读全文