API · Pandas
Funzione Pandas DataFrame DataFrame.query()
Il metodo DataFrame.query filtra le righe del chiamante DataFrame che soddisfano una determinata condizione.
In questa pagina
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