¿Cómo hacer consultas a un dataframe de Pandas con el método query()?

¿Cómo utilizar query() en un dataframe de Pandas?

Imagen por el autor

Introducción

Si has estado utilizando pandas para el análisis de datos y aún no estás familiarizado con el método de consulta de Pandas, no estás solo. El método query es intuitivo, limpio y menos verboso que los métodos tradicionales de filtrado de filas de un DataFrame. Sin embargo, por alguna razón, el método de consulta de Pandas aún no se utiliza ampliamente a pesar de su simplicidad.

Así que, en este artículo, nos gustaría presentarte el método de consulta de Pandas, y su sintaxis con ejemplos para que puedas empezar a utilizarlo de inmediato.

Puedes acceder al código completo de este artículo en GitHub aquí.

Originalmente publicado en pythonsimplifed.com el 18 de octubre de 2022.

Método de consulta de Pandas

El método de consulta de Pandas (df.query()) se utiliza para consultar las columnas de un DataFrame y filtrar solo las filas requeridas.

Los métodos más comúnmente utilizados para filtrar las filas de un DataFrame son los métodos de indexación booleana e indexación posicional. Consulta los ejemplos a continuación para entender a qué me refiero con indexación booleana e indexación posicional. Utilizaremos el conjunto de datos tips de la biblioteca Seaborn para los ejemplos.

import pandas as pdimport seaborn as snsdf = sns.load_dataset('tips')

Si quisiéramos seleccionar solo las filas con dos condiciones: no fumadores (smoker=‘No’) y mujeres, entonces con la indexación booleana y la indexación posicional, habríamos escrito el código de la siguiente manera.

# indexación booleanadf[ (df['smoker']=='No') & (df['sex'] =='Female') ]# indexación posicional usando .loc[] y .iloc[]df.loc[(df['smoker'] == 'No') & (df['sex'] == 'Female')]

Pero, el código anterior también se puede reescribir utilizando el método query de la siguiente manera. Como puedes ver, a pesar de ser intuitivo, limpio y menos verboso, el método de consulta a menudo es pasado por alto por los usuarios de pandas. En la siguiente sección, vamos a entender el método de consulta en detalle.

df.query('smoker == "No" & sex=="Female"')

Sintaxis

La sintaxis del método de consulta es la siguiente:

DataFrame.query(expr, inplace=False, **kwargs)
  • expr — Es la expresión/condiciones para filtrar el…