Python pandaps:使用参数将多个函数传递给agg()

2024-06-17 11:59:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在努力找出如何为pandas的dataframe.agg()函数组合两种不同的语法。以这个简单的数据帧为例:

df = pd.DataFrame({'A': ['group1', 'group1', 'group2', 'group2', 'group3', 'group3'],
                   'B': [10, 12, 10, 25, 10, 12],
                   'C': [100, 102, 100, 250, 100, 102]})

>>> df
[output]
        A   B    C
0  group1  10  100
1  group1  12  102
2  group2  10  100
3  group2  25  250
4  group3  10  100
5  group3  12  102

我知道您可以将两个函数发送到agg()并获得一个新的数据帧,其中每个函数都应用于每一列:

^{pr2}$

我知道你可以把参数传递给一个函数:

df.groupby('A').agg(np.std, ddof=0)

[output]
          B   C
A              
group1  1.0   1
group2  7.5  75
group3  1.0   1

但是有没有一种方法可以传递多个函数以及其中一个或两个函数的参数?我希望能在文档中找到类似df.groupby('A').agg([np.mean, (np.std, ddof=0)])的东西,但到目前为止还没有找到幸运。有什么想法吗?在


Tags: 数据函数dataframepandasdfoutputnp语法
1条回答
网友
1楼 · 发布于 2024-06-17 11:59:45

实际上,聚合上的docs有点欠缺。也许有一种方法可以通过正确传递参数来处理这个问题,您可以为此查看pandas的源代码(也许稍后我会这样做)。在

但是,您可以很容易地做到:

df.groupby('A').agg([np.mean, lambda x: np.std(x, ddof=0)])

它也会起到同样的作用。在

相关问题 更多 >