Corso
Spesso un DataFrame contiene colonne che non sono utili per l’analisi. Per concentrarti meglio sulle colonne rimanenti, è consigliabile eliminare quelle inutili dal DataFrame.
Le colonne possono essere rimosse specificando i nomi delle etichette e l’asse corrispondente, oppure indicando direttamente i nomi degli indici o delle colonne. Con un multi-index, puoi rimuovere etichette su livelli diversi specificando il livello.
.drop() Metodo
Confrontiamo il conteggio dei valori mancanti con la shape del dataframe. Noterai che la colonna county_name contiene tanti valori mancanti quante sono le righe, il che significa che contiene solo valori mancanti.
ri.isnull().sum()
state 0
stop_date 0
stop_time 0
county_name 91741
driver_gender 5205
driver_race 5202
...
ri.shape
91741, 15
Poiché non contiene informazioni utili, questa colonna può essere eliminata usando il metodo .drop().
Oltre a specificare il nome della colonna, devi indicare che stai eliminando sull’asse delle colonne e che vuoi eseguire l’operazione in place, evitando così un’istruzione di assegnazione, come mostrato sotto:
ri.drop('county_name',
axis='columns', inplace=True)
.dropna() Metodo
Il metodo .dropna() è un ottimo modo per eliminare righe in base alla presenza di valori mancanti in quella riga.
Per esempio, usando il dataset sopra, supponiamo che le colonne stop_date e stop_time siano fondamentali per la nostra analisi, e quindi una riga senza quei dati per noi sia inutile.
ri.head()
state stop_date stop_time driver_gender driver_race
0 RI 2005-01-04 12:55 M White
1 RI 2005-01-23 23:15 M White
2 RI 2005-02-17 04:15 M White
3 RI 2005-02-20 17:15 M White
4 RI 2005-02-24 01:20 F White
Possiamo dire a pandas di eliminare tutte le righe che hanno un valore mancante in stop_date o in stop_time. Poiché specifichiamo un subset, il metodo .dropna() considera solo queste due colonne quando decide quali righe eliminare.
ri.dropna(subset=['stop_date', 'stop_time'], inplace=True)
Esempio interattivo di eliminazione di colonne
In questo esempio, eliminerai la colonna county_name perché contiene solo valori mancanti, ed eliminerai la colonna state perché tutti i controlli del traffico hanno avuto luogo in un unico stato (Rhode Island). Quindi, queste colonne possono essere eliminate perché non contengono informazioni utili. Il numero di valori mancanti in ciascuna colonna è stato stampato in console per te.
- Esamina la
.shapedel DataFrame per conoscere il numero di righe e colonne. - Elimina le colonne
county_nameestatepassando i nomi delle colonne al metodo.drop()come lista di stringhe. - Esamina di nuovo la
.shapeper verificare che ora ci siano due colonne in meno.
# Examine the shape of the DataFrame
print(ri.shape)
# Drop the 'county_name' and 'state' columns
ri.drop(['county_name', 'state'], axis='columns', inplace=True)
# Examine the shape of the DataFrame (again)
print(ri.shape)
Eseguendo il codice sopra, otterrai il seguente risultato:
(91741, 15)
(91741, 13)
Per saperne di più sull’eliminazione di colonne in pandas, guarda questo video dal nostro corso Introduction to Data Visualization with ggplot2.
Questo contenuto è tratto dal corso Introduction to Data Visualization with ggplot2 di Kevin Markham su DataCamp.
Dai un’occhiata al nostro Tutorial: aggiungere colonne in Pandas.

