gpt4 book ai didi

python Pandas : Passing Multiple Functions to agg() with Arguments

转载 作者:太空狗 更新时间:2023-10-29 18:01:30 24 4
gpt4 key购买 nike

我正在努力弄清楚如何为 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() 并获得一个新的数据框,其中每个函数都应用于每一列:

df.groupby('A').agg([np.mean, np.std])

[output]
B C
mean std mean std
A
group1 11.0 1.414214 101 1.414214
group2 17.5 10.606602 175 106.066017
group3 11.0 1.414214 101 1.414214

而且我知道您可以将参数传递给单个函数:

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)]) 的东西,但到目前为止还没有运气.有什么想法吗?

最佳答案

嗯,docs总的来说其实有点欠缺。可能有一种方法可以通过正确传递参数来处理这个问题,您可以为此查看 pandas 的源代码(也许我稍后会)。

但是,您可以轻松地做到:

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

它也同样有效。

关于 python Pandas : Passing Multiple Functions to agg() with Arguments,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26354329/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com