【发布时间】:2014-12-05 15:31:29
【问题描述】:
我想使用 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]})
【问题讨论】: