Só por curiosidade, se a opção (b) é mais eficiente que a opção (a)? À primeira vista, a opção (a) terá várias vezes mais operações que a opção (b). Mas eu fiz algumas simulações para um milhão de linhas em df , a opção (b) é apenas uma fração mais rápida em média. Isso significa que o Pandas agrupará todas as operações escalares na opção (a) automaticamente?
(a) As variáveis a, b, c, d, e, f são todas escalares.
df['val2'] = (a*b+c*d)*df['val1']*e/f
(b)
x = (a*b+c*d)*e/f
df['val2'] = df['val1']*x