Я пытаюсь использовать настраиваемую функцию с groupby
в пандах. Я считаю, что использование apply
позволяет мне сделать это следующим образом:
(Пример, который вычисляет новое среднее значение из двух групп)
import pandas as pd
def newAvg(x):
x['cm'] = x['count']*x['mean']
sCount = x['count'].sum()
sMean = x['cm'].sum()
return sMean/sCount
data = [['A', 4, 2.5], ['A', 3, 6], ['B', 4, 9.5], ['B', 3, 13]]
df = pd.DataFrame(data, columns=['pool', 'count', 'mean'])
df_gb = df.groupby(['pool']).apply(newAvg)
Возможно ли интегрировать это в функцию agg
? Вдоль этих строк:
df.groupby(['pool']).agg({'count': sum, ['count', 'mean']: apply(newAvg)})