Panda's: hoe u een booleaanse kolom maakt op basis van een voorwaarde
U kunt de volgende basissyntaxis gebruiken om een op voorwaarden gebaseerde Booleaanse kolom te maken in een Panda DataFrame:
df[' boolean_column '] = np. where (df[' some_column '] > 15, True , False )
Deze specifieke syntaxis creëert een nieuwe Booleaanse kolom met twee mogelijke waarden:
- Waar als de waarde in some_column groter is dan 15.
- Onwaar als de waarde in some_column kleiner is dan of gelijk is aan 15.
Het volgende voorbeeld laat zien hoe u deze syntaxis in de praktijk kunt gebruiken.
Voorbeeld: Maak een Booleaanse kolom op basis van de voorwaarde in Panda’s
Stel dat we het volgende panda’s DataFrame hebben dat informatie bevat over verschillende basketbalspelers:
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
We kunnen de volgende code gebruiken om een nieuwe kolom te maken met de naam good_player die True retourneert als de waarde in de puntenkolom groter is dan 15 of anders 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
Merk op dat de nieuwe kolom met de naam good_player slechts twee waarden bevat: True of False .
We kunnen de functie dtypes() gebruiken om te verifiëren dat de nieuwe kolom good_player inderdaad een Booleaanse kolom is:
#display data type of good_player column
df[' good_player ']. dtype
dtype('bool')
De nieuwe kolom good_player is inderdaad een Booleaanse kolom.
Houd er ook rekening mee dat u numerieke waarden zoals 1 en 0 kunt retourneren in plaats van True en False als u dat wilt:
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
De kolom good_player bevat nu een 1 als de overeenkomstige waarde in de puntenkolom groter is dan 15.
Anders bevat het de waarde 0 .
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in panda’s kunt uitvoeren:
Hoe u rijen selecteert op basis van meerdere voorwaarden in Pandas
Hoe u een nieuwe kolom maakt op basis van een voorwaarde in Pandas
Hoe u een Pandas DataFrame op meerdere voorwaarden kunt filteren