I panda convertono valori categoriali in valori int

I Panda Convertono Valori Categoriali In Valori Int



I set di dati per l'esecuzione dell'apprendimento automatico includono variabili sia numeriche che categoriali. Le variabili categoriali sono dati di tipo stringa che gli esseri umani comprendono facilmente. Le macchine, d'altra parte, non possono comprendere direttamente gli input categoriali. Di conseguenza, i contenuti categoriali devono essere trasformati in valori numerici che le macchine possano interpretare.

Metodi per la conversione da categoriale a int

Le tecniche disponibili in 'panda' per convertire i valori categoriali in int di un DataFrame sono fornite qui:

    • Metodo DataFrame.replace()
    • Metodo DataFrame.apply(factorize()).

Utilizzeremo questi metodi in questo articolo e spiegheremo in dettaglio come utilizzare entrambi i metodi nei 'panda'.







Esempio n. 1: utilizzo del metodo Pandas Replace()

I valori categoriali in un DataFrame possono essere convertiti in int utilizzando il metodo panda 'DataFrame.replace()'. Impareremo qui come utilizzare questo metodo.



Abbiamo utilizzato lo strumento 'Spyder' per eseguire in modo ottimale questa tecnica in Python. Per iniziare a scrivere lo script, apri un nuovo file Python nello strumento 'Spyder'. Il requisito più significativo per scrivere lo script è importare le librerie appropriate. Dal momento che dobbiamo implementare un metodo 'panda', avremo 'import pandas as pd' per accedere alle funzionalità di 'panda'. Quindi iniziamo il nostro codice Python principale. Abbiamo creato un DataFrame utilizzando il metodo 'pd.DataFrame()'. Il DataFrame è inizializzato da tre colonne 'Nome', 'Grado' e 'Fatturato'. Tutte le colonne di DataFrame memorizzano la stessa lunghezza di valori.



La prima colonna, 'Nome', ha otto valori che sono 'bush', 'albert', 'harry', 'peter', 'emma', 'newton', 'smith' e 'elsa'. La seconda colonna, 'Grado', memorizza anche otto valori categoriali, che sono 'BS', 'MS', 'MS', 'BS', 'BS', 'BS', 'MS' e 'MS'. L'ultima colonna 'Reddito' ha otto valori interi '60000', '80000', '75000', '45000', '56000', '65000', '55000' e '70000'. Abbiamo creato un oggetto DataFrame 'staff' per memorizzare l'output dell'invocazione della funzione 'pd.DataFrame()'. Per visualizzare il nostro DataFrame iniziale, abbiamo utilizzato il metodo 'print()' con il nome 'staff' di DataFrame come parametro nella riga finale dello script.






Per visualizzare l'output sul terminale, utilizzare il pulsante 'Esegui file' sullo strumento 'Spyder' o premere i tasti 'Maiusc+Invio'. L'output visualizzato sul terminale mostra un DataFrame con tre colonne che sono state generate correttamente.


Ora, il nostro DataFrame è costruito, dobbiamo applicargli la tecnica richiesta. Il metodo panda 'DataFrame.replace()' verrà utilizzato per convertire i valori categoriali di una colonna specificata in valori interi in modo che le macchine possano renderli leggibili.



Abbiamo fornito il nome del DataFrame con il nome della colonna particolare di cui dobbiamo sostituire i valori, che è 'staff['degree']'. Vogliamo che i valori della colonna 'Grado', che ha valori categoriali, siano sostituiti da valori interi. Quindi viene invocato il metodo '.replace()'. L'abbiamo passato in due set; il primo contiene i due valori categoriali “['BS', 'MS']” che abbiamo estratto dalla colonna “Degree”. Come puoi vedere, la colonna 'Grado' utilizza questi due valori ripetutamente. Se avessimo avuto un terzo valore, avremmo dovuto menzionare anche quello. Il secondo set ha due valori int “[0, 1]”, che sostituiranno rispettivamente i valori del primo set. L'altro parametro, “inplace”, è impostato come “True”, consentendo la sostituzione dei valori. Se impostato su 'False', disabiliterà la sostituzione. Infine, abbiamo utilizzato il metodo 'print()' per visualizzare il DataFrame 'staff' aggiornato.


Il DataFrame risultante ha valori interi nella colonna 'Grado'. Il valore “BS” è sostituito da “0s” e “MS” è sostituito da “1s”.


Puoi anche verificare il tipo di dati per ciascuna colonna utilizzando la proprietà 'dataframe.dtype'. Questo ci porterà i tipi di dati di tutte le colonne nel DataFrame specificato.


Qui abbiamo i tipi di dati del nostro DataFrame. Possiamo vedere che il tipo di dati della colonna 'Grado' è cambiato in 'int64'.

Esempio n. 2: utilizzo del metodo Pandas apply()

L'altro metodo che i panda ci hanno fornito è la funzione 'DataFrame.apply()' per convertire i valori categoriali in numeri interi. Nell'esempio precedente, abbiamo imparato a convertire una colonna categoriale in un numero intero. Vedremo ora come convertire tutte le colonne categoriali in DataFrame in un int.

A partire dall'implementazione pratica, dobbiamo importare la libreria essenziale per questo metodo, che è panda. Abbiamo utilizzato lo script 'import pandas as pd' per importare panda nel nostro file Python nello strumento 'Spyder', che ci consentirà di accedere ai moduli panda usando 'pd'. Abbiamo usato la funzione 'pd.DataFrame()' per costruire un DataFrame.

Questo DataFrame ha quattro colonne 'gruppo', 'posizione', 'punteggi' e 'assist'. Ogni colonna memorizza 9 valori. I valori della colonna 'gruppo' sono 'X', 'X', 'Y', 'X', 'Y', 'Y', 'Y', 'X' e 'Y'. La colonna “posizione” ha 9 valori che sono “A”, “C”, “D”, “A”, “C”, “B”, “B”, “D” e “B”. La colonna 'punteggi' ha valori interi come '4', '8', '7', '10', '9', '5', '7', '3' e '23'. L'ultima colonna, 'assisti', ha i valori '10', '2', '3', '9', '3', '7', '4', '2' e '9'.

Abbiamo creato un oggetto DataFrame 'prog' e gli abbiamo assegnato l'output di invocare il metodo 'pd.DataFrame()'. Quindi, il frame DataFrame risultante generato da 'pd.DataFrame()' verrà archiviato in 'prog'. Ora possiamo accedere a DataFrame usando questo oggetto. Per visualizzare questo DataFrame, abbiamo utilizzato il metodo 'print()' con l'oggetto DataFrame 'prog' come parametro.


Quando viene eseguito il precedente programma Python, sul terminale verrà visualizzato un DataFrame con quattro colonne.


Per convertire più colonne categoriali in numeri interi, abbiamo seguito questa tecnica. Per prima cosa dobbiamo selezionare tutte le colonne che contengono il tipo di dati dell'oggetto utilizzando il metodo 'DataFrame.select_dtypes().columns' di panda. Quando lo utilizziamo nel nostro script come richiesto, sarà 'prog.select_dtypes(['object']).columns'. Selezionerà tutte le colonne che hanno il tipo di dati 'oggetto' nel DataFrame 'prog'. Abbiamo creato una variabile 'concate_col' per memorizzare l'output di questo metodo. Ora possiamo accedere alle colonne del tipo di dati 'oggetto' semplicemente usando questa variabile 'concat_col'.

Ora, per convertire queste colonne in numeri interi, abbiamo usato i panda 'DataFrame.apply()' con il metodo 'pd.factorize()'. Abbiamo utilizzato la variabile 'concat_col' con il nome DataFrame, quindi viene invocato il metodo '.apply()'. Tra le parentesi del metodo “.apply”, abbiamo chiamato il metodo “pd.factorize()” dove “x” può essere qualsiasi valore del DataFrame “prog” con tipo di dati “object”. Pertanto, l'intera riga di codice è scritta come 'prog['concat_col'] = prog['concat_col'].apply(lambda x : pd.factorize(x)[0])).Il metodo factorize assumerà un valore con un tipo di dati 'oggetto' e convertirlo in 'int'. L'output finale può essere visualizzato chiamando la funzione 'print()' passando la variabile 'prog' come parametro.


Nel DataFrame aggiornato, possiamo osservare che i valori delle colonne 'gruppo' e 'posizione' erano inizialmente categoriali, ovvero oggetto. Sempre nell'output aggiornato DataFrame, entrambe le colonne hanno valori interi. Nella colonna 'gruppo', 'X' è sostituito da '0' e 'Y' da '1'. Mentre la colonna “posizione” “A” è sostituita da “0”, “C” da “1”, “D” da “2” e “B” da “3”.


Ora, verifichiamo i tipi di dati aggiornati.


Tutte le colonne seguenti hanno il tipo di dati 'int64'.

Conclusione

La nostra guida ruota attorno alla conversione di valori categoriali 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 presentato i due approcci offerti dalla libreria 'panda' per ottenere il tipo di dati richiesto. Inoltre, con l'implementazione pratica di codici di esempio eseguiti sullo strumento 'Spyder', abbiamo condiviso il risultato di ogni esempio. Infine, abbiamo elaborato ogni passaggio per ottenere il risultato desiderato.