I set di dati per l'esecuzione dell'apprendimento automatico includono variabili sia numeriche che categoriche. Le variabili categoriche sono dati di tipo stringa che gli umani comprendono facilmente. Le macchine, d'altra parte, non possono comprendere direttamente gli input categorici. Di conseguenza, il contenuto categorico deve essere trasformato in valori numerici che le macchine possono interpretare.
In questo tutorial, discuteremo di tre diversi modi per convertire i valori categorici in valori numerici nel Frame di dati Panda
Approccio 1: utilizzando sostituti ()
In Python, sostituire () viene utilizzato per modificare o convertire i valori dati in nuovi valori che abbiamo specificato. Per sostituire più valori, dobbiamo passare due elenchi come parametri. Il primo elenco archiverà i valori effettivi da sostituire e il secondo elenco memorizzerà i valori che sostituiscono i valori nel primo elenco.
Sintassi
Dataframe_object ['colonna'] = dataframe_object ['colonna'].Sostituisci ([valore1, valore2,…], [valore1, valore2,…])Qui, la colonna è il nome della colonna in cui stiamo sostituendo i valori.
Considera il frame dati
Creiamo il telaio dati Pandas denominato imposta che tengono 4 colonne con 10 righe.
# Importa il frame dati dal modulo PandasProduzione
Codice Priority Gender AgeVediamo due colonne con il tipo categorico (oggetto), i.e., priorità e genere.
Quindi dobbiamo convertirli in valori numerici/interi.
Esempio 1
Sostituiamo i valori nella colonna di genere usando il metodo sostituito ().
# Importa il frame dati dal modulo PandasProduzione
Codice Priority Gender AgeSpiegazione
Stiamo sostituendo 'M' con 1 e 'f' con 2 e memorizzando nuovamente i valori della colonna nella colonna di genere. Possiamo vedere che la colonna di genere contiene valori entro 1 o 2.
Esempio 2
Sostituiamo i valori nella colonna prioritaria usando il metodo sostituito ().
# Importa il frame dati dal modulo PandasProduzione
Codice Priority Gender AgeSpiegazione
Ci sono tre categorie nella colonna prioritaria. Sono "bassi", "alti" e "medium". Stiamo sostituendo "basso" con 0, "mezzo" con 1 e "alto" con 2 e memorizzando nuovamente i valori della colonna nella colonna prioritaria.
Approccio 2: Utilizzo di Applica (Facorize ())
L'altro metodo Panda ci ha fornito è il "dati di dati.applicare () 'funzione per la conversione di tutti i valori categorici in numeri interi.
Per convertire più colonne categoriche in numeri interi, abbiamo seguito questa tecnica:
Il metodo Factorize prenderà un valore con un tipo di dati "oggetto" e lo convertirà in "int".
Se si desidera convertire solo i valori categorici di una colonna in particolare in numeri interi, allora Applica () non viene utilizzato.
Sintassi per singola colonna
Dataframe_object ['colonna'] = panda.fattorize (dataframe_object ['colonna']) [0]Sintassi per tutte le colonne
DataFrame_Object [dataframe_object.Select_Dtypes (['Object']).colonne] = dataframe_object [dataframe_object.Select_Dtypes (['Object']).colonne].Applica (Lambda X: Panda.fattorize (x) [0])Nota: La sostituzione inizierà da 0.
Esempio 1: sostituire i valori categorici a colonna singola
Sostituiamo i valori nella colonna di genere usando il metodo Factorize ().
# Importa il frame dati dal modulo PandasProduzione
Codice Priority Gender AgeSpiegazione
Stiamo sostituendo 'M' con 0 e 'f' con 1 e memorizzando nuovamente i valori della colonna nella colonna di genere. Ora, possiamo vedere che la colonna di genere contiene valori entro 0 o 1.
Esempio 2: sostituire tutti i valori categorici della colonna
Sostituiamo i valori in tutte le colonne utilizzando il metodo Appl (Facorize ()).
# Importa il frame dati dal modulo PandasProduzione
Codice Priority Gender AgeSpiegazione
Possiamo vedere seguenti:
Finora, abbiamo visto la sostituzione dei valori categorici ai valori interi in tutte le colonne con valori categorici noti. Supponiamo che ci sia un enorme set di dati con più di un record lakh. Come sostituire i valori categorici?
La soluzione è la codifica dell'etichetta.
Discutiamo di questo approccio.
Approccio 3: Utilizzo di etichetta
Etichetto () è il metodo presente all'interno del modulo Sklearn, che convertirà i valori categorici di una particolare colonna in un numero intero. Non abbiamo bisogno di specificare i valori categorici.
Il metodo fit_transform () viene utilizzato insieme a etichetto () che si adatta ai valori trasformati.
In questa tecnica, i valori sostituiti iniziano da 0 e la sostituzione viene eseguita in ordine alfabetico dei valori categorici.
Sintassi
DataFrame_Object ['colonna'] = etichettaggio ().FIT_TRANSFORM (dataframe_object ['colonna'])Qui, la colonna è il nome della colonna in cui stiamo sostituendo i valori.
Esempio
Sostituiamo i valori nel genere, colonne prioritarie usando il seguente approccio:
# Importa il frame dati dal modulo PandasProduzione
Codice Priority Gender AgeSpiegazione
Conclusione
La nostra guida ruota attorno alla conversione dei valori categorici in valori numerici in modo che possano essere resi comprensibili dalle macchine poiché il tipo di dati dell'oggetto non può essere elaborato da loro. Ti abbiamo introdotto ai tre approcci presenti dalla libreria "Panda" per ottenere il tipo di dati richiesto. Ricorda, dovresti usare l'approccio di etichettatura poiché non sai quante categorie sono presenti nella colonna di Panda DataFrame.