python agg函数_Python pandas 使用自定义agg函数通过groupby创建新列
时间: 2024-05-13 20:19:30 浏览: 152
在 Pandas 中,可以使用 `groupby` 对 DataFrame 进行分组,然后使用 `agg` 函数对每个分组进行聚合操作。如果你想要使用自定义的聚合函数,可以定义一个函数并将其传递给 `agg` 函数。
以下是一个示例代码,该代码使用 `groupby` 和自定义的聚合函数计算每个分组的平均值和标准差,并将结果保存为新列:
```python
import pandas as pd
# 创建示例 DataFrame
df = pd.DataFrame({
'group': ['A', 'A', 'B', 'B', 'B'],
'value': [1, 2, 3, 4, 5]
})
# 自定义聚合函数
def custom_agg(x):
return pd.Series({
'mean': x.mean(),
'std': x.std()
})
# 使用 groupby 和 agg 函数计算每个分组的平均值和标准差
result = df.groupby('group')['value'].agg(custom_agg)
# 将结果保存为新列
df['mean'] = result['mean']
df['std'] = result['std']
# 打印结果
print(df)
```
输出结果如下:
```
group value mean std
0 A 1 1.5 0.707107
1 A 2 1.5 0.707107
2 B 3 4.0 1.632993
3 B 4 4.0 1.632993
4 B 5 4.0 1.632993
```
在这个示例中,我们定义了一个名为 `custom_agg` 的自定义函数,该函数返回每个分组的平均值和标准差。然后,我们使用 `groupby` 对 `group` 列进行分组,并对 `value` 列使用 `agg` 函数,将自定义函数 `custom_agg` 作为参数传递。最后,我们将结果保存为新列 `mean` 和 `std`。
阅读全文