Pandas: so fragen sie einen spaltennamen mit einem leerzeichen ab


Sie können die folgende Syntax verwenden, um eine Pandas-Abfrage unter Verwendung eines Spaltennamens mit einem Leerzeichen durchzuführen:

 df. query (' `this column` == 20 ')

Beachten Sie, dass Sie in der Abfrage Anführungszeichen ( ` ) anstelle von doppelten Anführungszeichen verwenden müssen.

Das folgende Beispiel zeigt, wie diese Syntax in der Praxis verwendet wird.

Beispiel: Abfragespalte in Pandas DataFrame mit Leerzeichen

Angenommen, wir haben den folgenden Pandas-DataFrame, der Informationen über verschiedene Basketballspieler enthält:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G'], 
                    ' points scored ': [12, 20, 40, 20, 24, 10, 31]}) 

#view DataFrame
print (df)

  team points scored
0 to 12
1 B 20
2 C 40
3 D 20
4 E 24
5 F 10
6 G 31

Nehmen wir nun an, wir möchten die Zeilen abfragen, in denen die Spalte mit den markierten Punkten gleich 20 ist.

Wenn wir die Funktion query() mit Anführungszeichen verwenden, erhalten wir eine Fehlermeldung:

 #attempt to get rows where points scored column is equal to 20
df. query (' "points scored" == 20 ')

TypeError: argument of type 'int' is not iterable

Stattdessen müssen wir die Funktion query() mit Backticks verwenden:

 #get rows where points scored column is equal to 20
df. query (' `points scored` == 20 ')

	team points scored
1 B 20
3 D 20

Die Abfrage gibt die beiden Zeilen des DataFrame zurück, wobei die Spalte der markierten Punkte 20 beträgt.

Beachten Sie, dass wir auch keine Fehlermeldungen erhalten, da wir in der Funktion query() Anführungszeichen anstelle von Anführungszeichen verwendet haben.

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie Sie andere häufige Aufgaben in Pandas ausführen:

Pandas: So filtern Sie Zeilen basierend auf der Zeichenfolgenlänge
Pandas: So löschen Sie Zeilen basierend auf der Bedingung
Pandas: So verwenden Sie den „NO IN“-Filter

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert