Panda: come utilizzare factorize() per codificare stringhe come numeri


La funzione panda factorize() può essere utilizzata per codificare stringhe come valori numerici.

È possibile utilizzare i seguenti metodi per applicare la funzione factorize() alle colonne di un DataFrame panda:

Metodo 1: Fattorizzare una colonna

 df[' col1 '] = pd. factorize (df[' col '])[0]

Metodo 2: colonne specifiche del fattore

 df[[' col1 ', ' col3 ']] = df[[' col1 ', ' col3 ']]. apply ( lambda x: pd.factorize (x)[ 0 ])

Metodo 3: fattorizzare tutte le colonne

 df = df. apply ( lambda x: pd.factorize (x)[ 0 ])

L’esempio seguente mostra come utilizzare ciascun metodo con i seguenti DataFrame panda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' conf ': ['West', 'West', 'East', 'East'],
                   ' team ': ['A', 'B', 'C', 'D'],
                   ' position ': ['Guard', 'Forward', 'Guard', 'Center'] })

#view DataFrame
df

   conf team position
0 West A Guard
1 West B Forward
2 East C Guard
3 East D Center

Esempio 1: Fattorizzare una colonna

Il codice seguente mostra come fattorizzare una colonna nel DataFrame:

 #factorize the conf column only
df[' conf '] = pd. factorize (df[' conf '])[ 0 ]

#view updated DataFrame
df

	conf team position
0 0 A Guard
1 0 B Forward
2 1 C Guard
3 1 D Center

Tieni presente che è stata presa in considerazione solo la colonna “conf”.

Ogni valore che era “Ovest” ora è 0 e ogni valore che era “Est” ora è 1.

Esempio 2: colonne specifiche del fattore

Il codice seguente mostra come fattorizzare colonne specifiche nel DataFrame:

 #factorize conf and team columns only
df[[' conf ', ' team ']] = df[[' conf ', ' team ']]. apply ( lambda x: pd.factorize (x)[ 0 ])

#view updated DataFrame
df

        conf team position
0 0 0 Guard
1 0 1 Forward
2 1 2 Guard
3 1 3 Center

Tieni presente che le colonne “conf” e “team” sono state entrambe prese in considerazione.

Esempio 3: fattorizza tutte le colonne

Il codice seguente mostra come fattorizzare tutte le colonne nel DataFrame:

 #factorize all columns
df = df. apply ( lambda x: pd.factorize (x)[ 0 ])

#view updated DataFrame
df

     conf team position
0 0 0 0
1 0 1 1
2 1 2 0
3 1 3 2

Tieni presente che tutte le colonne sono state fattorizzate.

Risorse addizionali

I seguenti tutorial spiegano come eseguire altre operazioni comuni nei panda:

Come convertire le colonne Pandas DataFrame in stringhe
Come convertire una variabile categoriale in numerica in Pandas
Come convertire le colonne Pandas DataFrame in numeri interi

Aggiungi un commento

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