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

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *