Come creare variabili categoriali in panda (con esempi)


È possibile utilizzare uno dei seguenti metodi per creare una variabile categoriale in panda:

Metodo 1: creare una variabile categoriale da zero

 df[' cat_variable '] = [' A ', ' B ', ' C ', ' D ']

Metodo 2: creare una variabile categoriale da una variabile numerica esistente

 df[' cat_variable '] = pd. cut (df[' numeric_variable '],
                            bins=[ 0,15,25 ,float(' Inf ') ] ,
                            labels=[' Bad ', ' OK ', ' Good '])

Gli esempi seguenti mostrano come utilizzare ciascun metodo nella pratica.

Esempio 1: creare una variabile categoriale da zero

Il codice seguente mostra come creare un DataFrame panda con una variabile categoriale chiamata team e una variabile numerica chiamata points :

 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

Usando df.dtypes possiamo vedere il tipo di dati di ciascuna variabile nel DataFrame.

Possiamo vedere:

  • La variabile team è un oggetto .
  • La variabile points è un numero intero .

In Python un oggetto equivale a un carattere o a una variabile “categoriale”. Pertanto, la variabile squadra è una variabile categoriale.

Esempio 2: creare una variabile categoriale da una variabile numerica esistente

Il codice seguente mostra come creare una variabile categoriale chiamata status dalla variabile numerica esistente chiamata points nel 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

Utilizzando la funzione cut() , abbiamo creato una nuova variabile categoriale chiamata status che assume i seguenti valori:

  • Non valido ‘ se il valore nella colonna dei punti è inferiore o uguale a 15.
  • Altrimenti, ‘ OK ‘ se il valore nella colonna punti è inferiore o uguale a 25.
  • Altrimenti “ Buono ”.

Tieni presente che quando usi la funzione cut() , il numero di etichette deve essere inferiore di uno rispetto al numero di contenitori .

Nel nostro esempio, abbiamo utilizzato quattro valori per i riquadri per definire i bordi dei riquadri e tre valori per le etichette per specificare le etichette da utilizzare per la variabile categoriale.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre attività comuni dei panda:

Come creare variabili fittizie in Pandas
Come convertire una variabile categoriale in numerica in Pandas
Come convertire valori booleani in valori interi in Panda

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *