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