Применение нескольких функций к нескольким групповым столбцам

документы покажите, как применять несколько функций к объекту groupby одновременно, используя dict с именами выходных столбцов в качестве ключей:

In [563]: grouped['D'].agg({'result1' : np.sum,
   .....:                   'result2' : np.mean})
   .....:
Out[563]: 
      result2   result1
A                      
bar -0.579846 -1.739537
foo -0.280588 -1.402938

Однако это работает только для объекта Seriesby. И когда dict аналогично передается в групповой DataFrame, он ожидает, что ключами будут имена столбцов, к которым будет применена функция.

Я хочу применить несколько функций к нескольким столбцам (но некоторые столбцы будут работать несколько раз). Также,некоторые функции будут зависеть от других столбцов в объекте groupby (например, функции сумф). Мое текущее решение состоит в том, чтобы переходить от столбца к столбцу и делать что-то вроде приведенного выше кода, используя лямбда-выражения для функций, которые зависят от других строк. Но это занимает много времени, (я думаю, что это занимает много времени, чтобы перебрать объект groupby). Мне придется изменить его, чтобы я перебрал весь объект groupby за один прогон, но мне интересно, есть ли встроенный способ в пандах, чтобы сделать это несколько чисто.

Например, я пробовал что-то вроде

grouped.agg({'C_sum' : lambda x: x['C'].sum(),
             'C_std': lambda x: x['C'].std(),
             'D_sum' : lambda x: x['D'].sum()},
             'D_sumifC3': lambda x: x['D'][x['C'] == 3].sum(), ...)

но, как и ожидалось, я получаю KeyError (поскольку ключи должны быть столбцом, еслиagg вызывается из DataFrame).

Есть ли какой-нибудь встроенный способ сделать то, что я хотел бы сделать, или возможность добавления этой функциональности, или мне просто нужно будет перебирать группу вручную?

Спасибо

Ответы на вопрос(4)

Ваш ответ на вопрос