Pandas: extrahieren sie den spaltenwert basierend auf einer anderen spalte


Sie können die Funktion query() in Pandas verwenden, um den Wert in einer Spalte basierend auf dem Wert in einer anderen Spalte zu extrahieren.

Diese Funktion verwendet die folgende grundlegende Syntax:

 df. query (" team=='A' ")[" points "]

In diesem speziellen Beispiel wird jeder Wert aus der Punktespalte extrahiert, wobei die Teamspalte gleich A ist.

Die folgenden Beispiele zeigen, wie diese Syntax in der Praxis mit dem folgenden Pandas DataFrame verwendet wird:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [11, 28, 10, 26, 6, 25, 29, 12]})

#view DataFrame
print (df)

  team position points
0 AG 11
1 AG 28
2 AF10
3AF 26
4 BG 6
5 BG 25
6 BF 29
7 BF 12

Beispiel 1: Spaltenwerte basierend auf einer erfüllten Bedingung extrahieren

Der folgende Code zeigt, wie jeder Wert aus der Punktespalte extrahiert wird, wobei der Teamspaltenwert gleich „A“ ist:

 #extract each value in points column where team is equal to 'A'
df. query (" team=='A' ")[" points "]

0 11
1 28
2 10
3 26
Name: points, dtype: int64

Diese Funktion gibt die vier Werte in der Punktespalte zurück, wobei der entsprechende Wert in der Teamspalte „A“ entspricht.

Beispiel 2: Extrahieren Sie Spaltenwerte basierend auf einer von vielen erfüllten Bedingungen

Der folgende Code zeigt, wie jeder Wert aus der Punktespalte extrahiert wird, wobei der Wert der Teamspalte „A“ oder der Wert der Positionsspalte „G“ entspricht:

 #extract each value in points column where team is 'A' or position is 'G'
df. query (" team=='A' | position=='G' ")[" points "]

0 11
1 28
2 10
3 26
4 6
5 25
Name: points, dtype: int64

Diese Funktion gibt die sechs Werte in der Punktespalte zurück, wobei der entsprechende Wert in der Teamspalte „A“ oder der Wert in der Positionsspalte „G“ entspricht.

Beispiel 3: Extrahieren Sie Spaltenwerte basierend auf mehreren erfüllten Bedingungen

Der folgende Code zeigt, wie jeder Wert aus der Punktespalte extrahiert wird, wobei der Teamspaltenwert „A“ und der Positionsspaltenwert „G“ entspricht:

 #extract each value in points column where team is 'A' and position is 'G'
df. query (" team=='A' & position=='G' ")[" points "]

0 11
1 28
Name: points, dtype: int64

Diese Funktion gibt die beiden Werte in der Punktespalte zurück, wobei der entsprechende Wert in der Teamspalte „A“ und der Wert in der Positionsspalte „G“ entspricht.

Zusätzliche Ressourcen

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

Pandas: So wählen Sie Spalten basierend auf der Bedingung aus
Pandas: Zeilen basierend auf mehreren Bedingungen löschen
Pandas: Spaltenwerte basierend auf einem anderen DataFrame aktualisieren

Einen Kommentar hinzufügen

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