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

Dodaj komentarz

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