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