у меня датафрейм выглядит так:
''' df:
index, sales_fraction, Selected, T_value, A_value, D_value
1 0.33 t 0.3343 0.33434 0.33434
2 0.45 a 0.3434 0.23232 0.33434
3 0.56 d 0.3434 0.33434 0.6767
4 0.545 t 0.3434 0.33434 0.3346
5 0.343 d 0.2323 0.96342 0.2323
'''
У меня есть такая функция:
def aggregation(df):
df['sales_fraction'] = df['volume']/df['volume'].sum()
res = 0
for ix, row in df.iterrows():
if row['Selected'] == 't':
res += row['sales_fraction'] * row['T_value']
elif row['Selected'] == 'a':
res += row['sales_fraction'] * row['A_value']
elif row['Selected'] == 'd':
res += row['sales_fraction'] * row['D_value']
return res
Он работает очень медленно, так как мне нужно миллионы раз использовать функцию агрегирования в другой функции. Любое предложение, как я могу оптимизировать свой код? Я был бы очень признателен за вашу помощь. Спасибо!