Acelere el código Pandas con NumPy. Pero no puedo vectorizar esto, ¿verdad?  …… | de Thomas Reid | enero de 2025

Pero no puedo vectorizar esto, ¿verdad? …. ¡Sí, probablemente puedas!

En uno de los primeros artículos que escribí en Medium, hablé sobre el uso del método apply() en marcos de datos de Pandas y dije que debería evitarse, si es posible, en marcos de datos más grandes. Pondré un enlace a ese artículo al final de este si quieres consultarlo.

Aunque hablé un poco sobre posibles alternativas, es decir, el uso de la vectorización, no di muchos ejemplos del uso de la vectorización, así que pretendo remediar eso aquí. Específicamente, quiero hablar sobre cómo NumPy y un par de sus métodos menos conocidos ( wherey select) se puede utilizar para acelerar las operaciones de Pandas que involucran condiciones complejas si/entonces/si no.

La vectorización en el contexto de Pandas se refiere al método de aplicar operaciones a bloques enteros de datos a la vez en lugar de iterarlos fila por fila o elemento por elemento. Este enfoque es posible gracias a la dependencia de Pandas de NumPy, que admite operaciones vectorizadas altamente optimizadas y escritas en C, lo que permite un procesamiento más rápido. Cuando utiliza operaciones vectorizadas en Pandas, como aplicar operaciones o funciones aritméticas a objetos DataFrame o Series, las operaciones se envían a múltiples elementos de datos simultáneamente.