Come interrogare un DataFrame Pandas con il metodo query()

Interrogare DataFrame Pandas con query()

Immagine dell'autore

Introduzione

Se hai utilizzato pandas per l’analisi dei dati e non conosci ancora il metodo query di Pandas, allora non sei solo. Il metodo query è intuitivo, pulito e meno verboso rispetto ai metodi tradizionali di filtraggio delle righe dal DataFrame. Ma, per qualche motivo, il metodo query di Pandas non viene ancora utilizzato ampiamente nonostante la sua semplicità.

Quindi, in questo articolo, vorremmo presentarti il metodo query di Pandas e la sua sintassi con esempi in modo che tu possa iniziare a utilizzarlo immediatamente.

Puoi accedere al codice completo di questo articolo su GitHub qui.

Originariamente pubblicato su pythonsimplifed.com il 18 ottobre 2022.

Metodo query di Pandas

Il metodo query di Pandas (df.query()) viene utilizzato per interrogare le colonne del DataFrame e filtrare solo le righe necessarie dal DataFrame.

I metodi più comunemente utilizzati per filtrare le righe dal DataFrame sono i metodi di indicizzazione booleana e indicizzazione posizionale. Fai riferimento agli esempi sottostanti per capire cosa intendo per indicizzazione booleana e indicizzazione posizionale. Utilizzeremo il dataset tips dalla libreria Seaborn per gli esempi.

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

Se volessimo selezionare solo le righe con due condizioni – non fumatore (fumatore=’No’) e femmina, allora con l’indicizzazione booleana e l’indicizzazione posizionale, avremmo scritto il codice come segue.

# indicizzazione booleanadf[ (df['smoker']=='No') & (df['sex'] =='Female') ]# indicizzazione posizionale utilizzando .loc[] e .iloc[]df.loc[(df['smoker'] == 'No') & (df['sex'] == 'Female')]

Ma, il codice sopra può anche essere riscritto utilizzando il metodo query come segue. Come puoi vedere, nonostante la sua intuitività, pulizia e minore verbosità, il metodo query viene spesso trascurato dagli utenti di pandas. Nella prossima sezione, comprendiamo il metodo query in dettaglio.

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

Sintassi

La sintassi del metodo query è la seguente:

DataFrame.query(expr, inplace=False, **kwargs)
  • expr – È l’espressione/condizione per filtrare il…