Ir al contenido principal

Búsquedas rápidas utilizando Pandas en Python

Oso panda

Muchas veces tenemos que trabajar con Pandas y una de las tareas más comunes es la búsqueda dentro de una columna.

Para ello, lo más simple que podemos hacer es ejecutar la siguiente línea:

mask = df['column'] == 'Value'
df.loc[mask, 'column'] = 'NewValue'

Sin embargo, esta instrucción de Python es bastante lenta, sobre todo cuando estamos trabajando con DataFrames medianos o largos, y esto afecta a la performance general de todo nuestro proyecto.

NumPy al rescate

NumPy es mucho más rápido que Pandas para muchas tareas, en parte gracias a la vectorización y a que está escrito en lenguaje C.

Además, Pandas está construido sobre NumPy, por lo que podemos utilizar las funciones de NumPy para acelerar su funcionamiento. En este caso, utilizaremos la función np.in1d:

mask = np.in1d(df['column'], ['Value'])
df.loc[mask, 'column'] = 'NewValue'

Esta simple modificación de la búsqueda se ejecutará mucho más rápido que la búsqueda estándar de Pandas, y además nos permite también buscar varios valores a la vez añadiéndolos simplemente a la lista del segundo parámetro.

Comparte este post en tus redes