Все, что я хотел бы сделать для группы и вызвать функцию одновременно.
Вот функция
def dollar_wtd_two(DF, kw_param, kw_param2):
return np.sum(DF[kw_param] * DF[kw_param2]) / DF[kw_param2].sum()
Функция dollar_wtd_two
имеет 3 параметра DF
(кадр данных) и имена столбцов одного и того же кадра данных DF
. Концептуально вот что я хотел бы сделать:
DF.groupby(['prime_broker_id', 'country_name'],
as_index=False).agg({"notional_current": np.sum, "new_column":dollar_wtd_two(DF,
kw_param, kw_param2) })
В основном groupby
будет выполнять простые операции, такие как сумма или среднее, а также более сложные операции, где я буду вызывать функции, подобные dollar_wtd_two
Вот как бы выглядел вывод DF
без "new_column"
DF.groupby(['prime_broker_id', 'country_name'],
as_index=False).agg({"notional_current": np.sum })
Выход 1:
prime_broker_id country_name notional_current
0 BARCAP AUSTRIA 2.616735e+07
1 BARCAP BELGIUM 6.327196e+07
2 BARCAP DENMARK 1.286309e+07
3 BARCAP FINLAND 4.181843e+07
4 BARCAP FRANCE 1.579292e+08
5 BARCAP GERMANY 2.653451e+08
6 BARCAP IRELAND 1.037968e+07
Я не могу показать вывод DF
с "new_column":dollar_wtd_two(DF, kw_param, kw_param2)
. Однако в отдельности вывод dollar_wtd_two(DF, kw_param, kw_param2)
должен выглядеть следующим образом:
Выход 2:
prime_broker_id country_name
BARCAP AUSTRIA 25.009402
BELGIUM 25.083404
DENMARK 25.000000
FINLAND 25.034493
FRANCE 25.000000
GERMANY 25.007943
IRELAND 25.000000
ISRAEL 399.242997
Идея состоит в том, чтобы объединить Выход 1 и Выход 2 в одну операцию. Пожалуйста, дайте мне знать, если неясно.
Любая помощь приветствуется
Большое спасибо