Pandy: jak utworzyć kolumnę logiczną na podstawie warunku
Aby utworzyć kolumnę logiczną opartą na warunkach w ramce DataFrame pandy, możesz użyć następującej podstawowej składni:
df[' boolean_column '] = np. where (df[' some_column '] > 15, True , False )
Ta konkretna składnia tworzy nową kolumnę logiczną z dwiema możliwymi wartościami:
- Prawda , jeśli wartość w Some_column jest większa niż 15.
- Fałsz , jeśli wartość w Some_column jest mniejsza lub równa 15.
Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.
Przykład: utwórz kolumnę logiczną na podstawie warunku w Pandach
Załóżmy, że mamy następującą ramkę danych pand, która zawiera informacje o różnych koszykarzach:
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
Możemy użyć poniższego kodu, aby utworzyć nową kolumnę o nazwie good_player , która zwraca True , jeśli wartość w kolumnie punktów jest większa niż 15, lub False w przeciwnym razie:
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
Zauważ, że nowa kolumna o nazwie good_player zawiera tylko dwie wartości: True lub False .
Możemy użyć funkcji dtypes() , aby sprawdzić, czy nowa kolumna good_player jest rzeczywiście kolumną logiczną:
#display data type of good_player column
df[' good_player ']. dtype
dtype('bool')
Nowa kolumna good_player jest w rzeczywistości kolumną logiczną.
Pamiętaj też, że możesz zwracać wartości liczbowe, takie jak 1 i 0 , zamiast Prawda i Fałsz , jeśli chcesz:
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
Kolumna good_player zawiera teraz 1 , jeśli odpowiadająca jej wartość w kolumnie punktów jest większa niż 15.
W przeciwnym razie zawiera wartość 0 .
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje na pandach:
Jak wybierać wiersze na podstawie wielu warunków w Pandach
Jak utworzyć nową kolumnę na podstawie warunku w Pandach
Jak filtrować ramkę danych Pandas pod wieloma warunkami