Ir al contenido
  1. Posts/

Reduje el Tiempo de Ejecución de Pandas en un 95%: Los Errores que Cometía

··289 palabras·2 mins·

🐼 Tu código de Pandas “funciona”… pero ¿es eficiente?

Muchos desarrolladores confunden “código sin errores” con “código eficiente”. Con Pandas, puedes obtener el resultado correcto y aun así estar haciendo las cosas de la peor manera posible.

⚡ Los errores más costosos que ralentizan Pandas:

  • 🐌 Usar .apply() con lambda: itera fila por fila, como un bucle for. Es hasta 6,000× más lento que la alternativa.
  • 📝 Operación correcta: la vectorización — operar sobre columnas enteras a la vez usando operaciones nativas de Pandas/NumPy.
# Lento 🐌
df.apply(lambda row: row['sales'] * row['discount'], axis=1)

# Rápido ⚡
df['sales'] * df['discount']
  • 🏋️ Tipos de datos inflados: guardar enteros como int64 cuando int32 es suficiente duplica el uso de memoria y ralentiza todo.
  • 🔍 No medir antes de optimizar: usa %timeit para comparar enfoques antes de reescribir código.

🎯 La clave es entender cuándo Pandas muestra sus límites y considerar alternativas como Polars o Dask para datasets masivos.

💡 Explicación en pocas palabras
#

Pandas es como una planilla de cálculo muy poderosa para Python. Cuando le pedís que procese datos fila por fila (con .apply()), es lento porque hace un viaje individual por cada fila. La vectorización, en cambio, es como decirle “procesá todas las filas a la vez” — el motor interno de NumPy está optimizado para hacerlo en una sola operación, mucho más rápido. Es la diferencia entre hacer 100,000 viajes cortos versus un solo viaje largo.

Más información en el link 👇

También publicado en LinkedIn.
Juan Pedro Bretti Mandarano
Autor
Juan Pedro Bretti Mandarano