Funzione Pandas DataFrame DataFrame.query()

Suraj Joshi 30 gennaio 2023
  1. Sintassi di pandas.DataFrame.query():
  2. Codici di esempio: Metodo DataFrame.query() con condizione singola
  3. Codici di esempio: Metodo DataFrame.query() quando il nome della colonna ha uno spazio vuoto
  4. Codici di esempio: metodo DataFrame.query() con più condizioni
Funzione Pandas DataFrame DataFrame.query()

Il metodo pandas.DataFrame.query() filtra le righe del chiamante DataFrame utilizzando l’espressione di query data.

Sintassi di pandas.DataFrame.query():

DataFrame.query(expr, inplace=False, **kwargs)

Parametri

expr Espressione di query in base alle righe filtrate
inplace Booleano. Se True, modifica il chiamante DataFrame sul posto
**kwargs Argomenti delle parole chiave per il metodo

Ritorno

Se inplace è True, restituisce il DataFrame filtrato; altrimenti None.

Codici di esempio: Metodo DataFrame.query() con condizione singola

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

filtered_df=df.query('X>1')
print("Filtered DataFrame:")
print(filtered_df)

Produzione:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Filtered DataFrame:
   X  Y
1  2  1
2  3  8

Restituisce il DataFrame con solo le righe che soddisfano l’espressione di query data, cioè solo le righe il cui valore nella colonna X è maggiore di 1.

Codici di esempio: Metodo DataFrame.query() quando il nome della colonna ha uno spazio vuoto

Dobbiamo assicurarci che i nomi delle colonne da interrogare non abbiano spazi bianchi prima di applicare questo metodo a DataFrame.

Se abbiamo nomi di colonna con spazi al loro interno, potremmo usare il backtick quoting (`).

import pandas as pd

df = pd.DataFrame(
    {
        "X": [
            1,
            2,
            3,
        ],
        "Y": [4, 1, 8],
        "A B": [3, 5, 7],
    }
)
print("Original DataFrame:")
print(df)
filtered_df = df.query("`A B`>5")
print("Filtered DataFrame:")
print(filtered_df)

Produzione:

Original DataFrame:
   X  Y  A B
0  1  4    3
1  2  1    5
2  3  8    7
Filtered DataFrame:
   X  Y  A B
2  3  8    7

Qui, la colonna A B ha uno spazio nel nome. Per creare un’espressione di query per la colonna, racchiudiamo il nome della colonna tra i backtick; altrimenti, solleverà un errore.

Codici di esempio: metodo DataFrame.query() con più condizioni

import pandas as pd

df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
print("Original DataFrame:")
print(df)

filtered_df=df.query('X>1' and 'Y==1')
print("Filtered DataFrame:")
print(filtered_df)

Produzione:

Original DataFrame:
   X  Y
0  1  4
1  2  1
2  3  8
Filtered DataFrame:
   X  Y
1  2  1

Se desideriamo filtrare DataFrame in base a più condizioni, combiniamo più espressioni di query utilizzando l’operatore e per creare un’unica espressione di query composita.

Fornisce il DataFrame con le righe il cui valore della colonna X è maggiore di 1 e il valore della colonna Y è uguale a 1.

Possiamo modificare il DataFrame originale dopo aver chiamato il metodo query() impostando inplace=True.

import pandas as pd
df = pd.DataFrame({'X': [1, 2, 3,],
                   'Y': [4, 1, 8]})
filtered_df=df.query('X>1' and 'Y==1',inplace=True)
print(df)

Produzione:

   X  Y
1  2  1
Autore: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Articolo correlato - Pandas DataFrame