Pandas DataFrame DataFrame.query() Funktion

Suraj Joshi 30 Januar 2023
  1. Syntax von pandas.DataFrame.query():
  2. Beispielcodes: DataFrame.query() Methode mit Einzelbedingung
  3. Beispielcodes: DataFrame.query() Methode, wenn Spaltenname Whitespace hat
  4. Beispielcodes: DataFrame.query() Methode mit mehreren Bedingungen
Pandas DataFrame DataFrame.query() Funktion

Die Methode pandas.DataFrame.query() filtert die Zeilen des aufrufenden DataFrame unter Verwendung des gegebenen Abfrageausdrucks.

Syntax von pandas.DataFrame.query():

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

Parameter

expr Abfrageausdruck, basierend auf dem Zeilen gefiltert werden
inplace Boolesch. Wenn True, modifizieren Sie den Aufrufer DataFrame an Ort und Stelle
**kwargs Schlüsselwort-Argumente für die Methode

Zurück

Wenn inplace gleich True ist, gibt es den gefilterten DataFrame zurück; andernfalls None.

Beispielcodes: DataFrame.query() Methode mit Einzelbedingung

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)

Ausgabe:

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

Es gibt den DataFrame mit nur den Zeilen zurück, die den gegebenen Abfrageausdruck erfüllen, d.h. nur die Zeilen, deren Wert in Spalte X größer als 1 ist.

Beispielcodes: DataFrame.query() Methode, wenn Spaltenname Whitespace hat

Wir müssen sicherstellen, dass Spaltennamen, die abgefragt werden sollen, keine Leerzeichen enthalten, bevor wir diese Methode auf DataFrame anwenden.

Wenn wir Spaltennamen mit Leerzeichen haben, können wir Backtick-Anführungszeichen (`) verwenden.

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)

Ausgabe:

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

Hier hat die Spalte A B Leerzeichen in ihrem Namen. Um einen Abfrageausdruck für die Spalte zu erstellen, schließen wir den Spaltennamen in Backticks ein; andernfalls wird ein Fehler ausgegeben.

Beispielcodes: DataFrame.query() Methode mit mehreren Bedingungen

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)

Ausgabe:

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

Wenn wir DataFrame basierend auf mehreren Bedingungen filtern wollen, kombinieren wir die mehreren Abfrageausdrücke mit Hilfe des and Operators, um einen einzigen zusammengesetzten Abfrageausdruck zu erstellen.

Er ergibt den Dataframe mit Zeilen, deren Wert der Spalte X größer als 1 ist und der Wert der Spalte Y gleich 1 ist.

Wir können den ursprünglichen DataFrame nach dem Aufruf der query() Methode modifizieren, indem wir inplace=True setzen.

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)

Ausgabe:

   X  Y
1  2  1
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Verwandter Artikel - Pandas DataFrame