Pandas: so erstellen sie eine boolesche spalte basierend auf der bedingung


Sie können die folgende grundlegende Syntax verwenden, um eine bedingungsbasierte boolesche Spalte in einem Pandas-DataFrame zu erstellen:

 df[' boolean_column '] = np. where (df[' some_column '] > 15, True , False )

Diese spezielle Syntax erstellt eine neue boolesche Spalte mit zwei möglichen Werten:

  • True , wenn der Wert in some_column größer als 15 ist.
  • Falsch , wenn der Wert in some_column kleiner oder gleich 15 ist.

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

Beispiel: Erstellen Sie eine boolesche Spalte basierend auf der Bedingung in Pandas

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' points ': [5, 17, 7, 19, 12, 13, 9, 24]})

#view DataFrame
print (df)

  team points
0 to 5
1 to 17
2 to 7
3 to 19
4 B 12
5 B 13
6 B 9
7 B 24   

Mit dem folgenden Code können wir eine neue Spalte namens „good_player“ erstellen, die True zurückgibt, wenn der Wert in der Punktespalte größer als 15 ist, andernfalls False :

 import numpy as np

#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, True , False )

#view updated DataFrame
print (df)

  team points good_player
0 To 5 False
1 To 17 True
2 To 7 False
3 To 19 True
4 B 12 False
5 B 13 False
6 B 9 False
7 B 24 True

Beachten Sie, dass die neue Spalte namens good_player nur zwei Werte enthält: True oder False .

Wir können die Funktion dtypes() verwenden, um zu überprüfen, ob die neue Spalte „good_player“ tatsächlich eine boolesche Spalte ist:

 #display data type of good_player column
df[' good_player ']. dtype

dtype('bool')

Die neue Spalte „good_player“ ist tatsächlich eine boolesche Spalte.

Beachten Sie außerdem, dass Sie bei Bedarf numerische Werte wie 1 und 0 anstelle von True und False zurückgeben können:

 import numpy as np

#create new boolean column based on value in points column
df[' good_player '] = np. where (df[' points '] > 15, 1 , 0 )

#view updated DataFrame
print (df)

  team points good_player
0 to 5 0
1 To 17 1
2 to 7 0
3 A 19 1
4 B 12 0
5 B 13 0
6 B 9 0
7 B 24 1

Die Spalte „good_player“ enthält nun eine 1 , wenn der entsprechende Wert in der Punktespalte größer als 15 ist.

Ansonsten enthält es den Wert 0 .

Zusätzliche Ressourcen

In den folgenden Tutorials wird erläutert, wie andere gängige Vorgänge in Pandas ausgeführt werden:

So wählen Sie Zeilen basierend auf mehreren Bedingungen in Pandas aus
So erstellen Sie eine neue Spalte basierend auf einer Bedingung in Pandas
So filtern Sie einen Pandas DataFrame nach mehreren Bedingungen

Einen Kommentar hinzufügen

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