Panda è uno dei pacchetti di analisi e manipolazione dei dati più preziosi di Python.
Offre funzionalità come strutture di dati personalizzate costruite sopra Python.
Questo articolo discuterà di convertire una colonna da un tipo di dati in un tipo INT all'interno di un Frame di dati Panda.
Impostazione di panda
Prima di immergerti su come eseguire l'operazione di conversione, dobbiamo configurare i panda nel nostro ambiente Python.
Se stai usando l'ambiente di base nell'interprete Anaconda, è probabile che tu abbia i panda installati.
Tuttavia, su un'installazione di Python nativa, dovrai installarlo manualmente.
Puoi farlo eseguendo il comando:
$ PIP Installa pandaSu Linux, esegui
$ sudo pip3 installa pandaIn ambienti Anaconda o Miniconda, installa panda con Conda.
$ conda installa pandaPanda Crea campione di dati di esempio
Impostiamo un campione di dati per scopi di illustrazione in questo tutorial. È possibile copiare il codice di seguito o utilizzare il tuo frame dati.
Importa panda come PDUna volta creato il frame dati, possiamo controllare i dati.
I panda mostrano il tipo di colonna
È bene sapere se il tipo esistente può essere lanciato su un INT prima di convertire una colonna da un tipo a un INT.
Ad esempio, tentare di convertire una colonna contenente nomi non può essere convertita in un INT.
Possiamo visualizzare il tipo di telaio di dati utilizzando la proprietà DTypes
Usa la sintassi:
DataFrame.dtypesNel nostro campione di dati, possiamo ottenere i tipi di colonna come:
df.dtypesPossiamo vedere dall'output sopra che nessuna delle colonne tiene un tipo int.
Pandas Convert la colonna da stringa a int.
Per convertire una singola colonna in un INT, utilizziamo la funzione ASTYPE () e passiamo il tipo di dati di destinazione come parametro.
La sintassi della funzione:
DataFrame.astype (dtype, copy = true, errors = 'solleva')Nel nostro Frame di dati di esempio, possiamo convertire la colonna ID in tipo int utilizzando la funzione ASTYPE () come mostrato nel codice seguente:
df ['id'] = df ['id'].astype (int)Il codice sopra specifica la colonna "ID" come oggetto target. Passiamo quindi un INT come tipo alla funzione astype ().
Possiamo controllare il nuovo tipo di dati per ciascuna colonna nel frame dati:
df.dtypesLa colonna ID è stata convertita in un INT mentre il resto rimane invariato.
I panda convertono più colonne in int
La funzione ASTYPE () ci consente di convertire più di una colonna e convertirli in un tipo specifico.
Ad esempio, possiamo eseguire il seguente codice per convertire le colonne ID e punti in tipo INT.
df [['id', 'punti'] = df [['id', 'point'].astype (int)Qui, stiamo specificando più colonne usando la notazione della staffa quadrata. Questo ci consente di convertire le colonne nel tipo di dati specificato nella funzione ASTYPE ().
Se controlliamo il tipo di colonna, dovremmo vedere un output:
df.dtypesOra possiamo vedere che la colonna ID e punti è stata convertita in tipo INT32.
I panda convertono più colonne in più tipi
La funzione ASTYPE () ci consente di specificare una colonna e un tipo di destinazione come dizionario.
Supponiamo che vogliamo convertire la colonna ID in int32 e la colonna Punti in float64.
Possiamo eseguire il seguente codice:
convert_to = "id": int, "punti": floatNel codice sopra, iniziamo definendo un dizionario che tiene la colonna di destinazione come chiave e tipo di destinazione come valore.
Quindi utilizziamo la funzione ASTYPE () per convertire le colonne nel dizionario nei tipi impostati.
Verificare che i tipi di colonna dovrebbero restituire:
df.dtypesSi noti che la colonna ID è int32 e la colonna Punti è di tipo float32.
Pandas Convert Column in int - to_numeric ()
Pandas ci fornisce anche la funzione To_numeric (). Questa funzione ci consente di convertire una colonna in un tipo numerico.
La sintassi della funzione è come mostrata:
panda.to_numeric (arg, errors = 'sollevare', downcast = nessuno)Ad esempio, per convertire la colonna ID in numerico nel nostro telaio di dati, possiamo eseguire:
df ['id'] = pd.to_numeric (df ['id'])Il codice dovrebbe prendere la colonna ID e convertirla in un tipo INT.
Pandas converti il telaio dati al miglior tipo di dati possibile
La funzione convert_dtypes () in panda ci consente di convertire un intero telaio nel tipo possibile più vicino.
La sintassi della funzione è come mostrata:
DataFrame.convert_dtypes (infer_objects = true, convert_string = true,Puoi controllare i documenti nella risorsa di seguito:
https: // panda.Pydata.Org/Docs/Reference/API/PANDAS.DataFrame.convert_dtypes.html
Ad esempio, per convertire il nostro telaio di dati nel tipo possibile più vicino, possiamo eseguire:
df = df.convert_dtypes ()Se controlliamo il tipo:
df.dtypesNoterai che ogni colonna è stata convertita nel tipo appropriato più vicino. Ad esempio, la funzione converte piccoli INT in tipo int32.
Allo stesso modo, la colonna dei nomi viene convertita in tipo stringa in quanto contiene valori di stringa.
Infine, poiché la colonna Punti contiene numeri interi più grandi, viene convertita in un tipo INT64.
Conclusione
In questo articolo, abbiamo fornito metodi dettagliati ed esempi di conversione di un telaio di dati Panda da un tipo a un altro.