Jak tworzyć zmienne jakościowe w pandach (z przykładami)
Aby utworzyć zmienną kategorialną w pandach, możesz użyć dowolnej z następujących metod:
Metoda 1: Utwórz zmienną jakościową od podstaw
df[' cat_variable '] = [' A ', ' B ', ' C ', ' D ']
Metoda 2: Utwórz zmienną jakościową na podstawie istniejącej zmiennej numerycznej
df[' cat_variable '] = pd. cut (df[' numeric_variable '], bins=[ 0,15,25 ,float(' Inf ') ] , labels=[' Bad ', ' OK ', ' Good '])
Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.
Przykład 1: Utwórz zmienną jakościową od podstaw
Poniższy kod pokazuje, jak utworzyć ramkę danych pandy ze zmienną kategorialną o nazwie zespół i zmienną numeryczną o nazwie punkty :
import pandas as pd
#create DataFrame with one categorical variable and one numeric variable
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
' points ': [12, 15, 19, 22, 24, 25, 26, 30]})
#view DataFrame
print (df)
team points
0 to 12
1 B 15
2 C 19
3 D 22
4 E 24
5 F 25
6 G 26
7:30 a.m.
#view data type of each column in DataFrame
print ( df.dtypes )
team object
int64 dots
dtype:object
Używając df.dtypes możemy zobaczyć typ danych każdej zmiennej w DataFrame.
Możemy zobaczyć:
- Zmienna zespołu jest obiektem .
- Zmienna punktów jest liczbą całkowitą .
W Pythonie obiekt jest odpowiednikiem znaku lub zmiennej „kategorycznej”. Zatem zmienna zespołowa jest zmienną kategoryczną.
Przykład 2: Utwórz zmienną kategorialną na podstawie istniejącej zmiennej numerycznej
Poniższy kod pokazuje, jak utworzyć zmienną kategorialną o nazwie status na podstawie istniejącej zmiennej numerycznej zwanej punktami w ramce DataFrame:
import pandas as pd
#create DataFrame with one categorical variable and one numeric variable
df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'],
' points ': [12, 15, 19, 22, 24, 25, 26, 30]})
#create categorical variable 'status' based on existing numerical 'points' variable
df[' status '] = pd. cut (df[' points '],
bins=[ 0,15,25 ,float(' Inf ') ] ,
labels=[' Bad ', ' OK ', ' Good '])
#view updated DataFrame
print (df)
team points status
0 To 12 Bad
1 B 15 Bad
2 C 19 OK
3 D 22 OK
4 E 24 OK
5 F 25 OK
6 G 26 Good
7:30 a.m. Good
Za pomocą funkcji cut() utworzyliśmy nową zmienną kategoryczną o nazwie status , która przyjmuje następujące wartości:
- „ Zły ”, jeśli wartość w kolumnie punktów jest mniejsza lub równa 15.
- W przeciwnym razie „ OK ”, jeśli wartość w kolumnie punktów jest mniejsza lub równa 25.
- W przeciwnym razie „ Dobrze ”.
Należy pamiętać, że podczas korzystania z funkcji cut() liczba etykiet musi być o jeden mniejsza niż liczba pojemników .
W naszym przykładzie użyliśmy czterech wartości dla pudełek , aby zdefiniować krawędzie pudełek i trzech wartości dla etykiet , aby określić etykiety, które mają być użyte dla zmiennej kategorycznej.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania związane z pandą:
Jak utworzyć fikcyjne zmienne w Pandach
Jak przekonwertować zmienną kategorialną na numeryczną w Pandach
Jak przekonwertować wartości logiczne na wartości całkowite w Pandach