gpt4 book ai didi

python - Pandas 使用 groupby 为 groupby 变量的每个值应用不同的函数

转载 作者:行者123 更新时间:2023-12-01 04:56:13 25 4
gpt4 key购买 nike

我想使用 groupby,但我想指定哪个函数应用于哪个组值,而不是对每个组应用相同的函数。我在这里提供一个非常简单的示例来说明这一点,但实际上我的 groupby 变量有很多值,并且我的函数都是用户定义的并且相当复杂 - 因此解决方案涉及单独选择每个组或应用对所有群体使用相同的功能是不切实际的。 (针对这个非常相似的问题提供了此类答案:how to apply different functions to each group of pandas groupby?,但它们没有解决我的问题)

df = DataFrame({'Category': ['A','A','A','B','B','B','C','C','C'],
'Total': [1, 2, 3, 1, 2, 3, 1, 2, 3]})

我希望能够为我的 groupby 变量的每个级别指定一个函数:

function_map = {'A': np.mean,
'B': np.max,
'C': np.min}

我希望能够做的是这样的:

df.groupby('Category').apply(function_map)

我想要的结果形式如下 DataFrame:

result = DataFrame({'Category': ['A','B','C'],
'Total': [2, 3, 1]})

最佳答案

只需使用 lambda,类似这样

df.groupby('Category').apply(lambda r: function_map[r.name](r.Total))

此外,您应该使用 numpy 函数,以便 np.meannp.maxnp.min

关于python - Pandas 使用 groupby 为 groupby 变量的每个值应用不同的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27319338/

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