Personalizzare l'import con pandas
Il pacchetto pandas è ottimo per gestire molti dei problemi che potresti incontrare quando importi dati come data scientist, come commenti presenti nei flat file, righe vuote e valori mancanti (NA o NaN). Per chiudere questo capitolo, importerai una copia corrotta del dataset Titanic titanic_corrupt.txt, che contiene commenti dopo il carattere '#' ed è delimitata da tabulazioni.
Gli argomenti principali di pd.read_csv() includono:
sepimposta il delimitatore previsto.- Puoi usare
','per i file separati da virgola. - Puoi usare
'\t'per i file separati da tabulazioni.
- Puoi usare
commentindica i caratteri dopo i quali compaiono i commenti nel file, specificando che qualsiasi testo che inizia con questi caratteri deve essere ignorato.na_valuesaccetta un elenco di stringhe da identificare comeNA/NaN. Per impostazione predefinita, alcuni valori sono già riconosciuti comeNA/NaN. Fornendo questo argomento aggiungerai ulteriori valori.
Questo esercizio fa parte del corso
Introduzione all'importazione dei dati in Python
Istruzioni dell'esercizio
- Completa gli argomenti di
pd.read_csv()per importare correttamentetitanic_corrupt.txtcon pandas:sepimposta il delimitatore da usare e funziona come l'argomentodelimiterdinp.loadtxt(). Nota che il file che stai importando è separato da tabulazioni.commentindica i caratteri dopo i quali compaiono i commenti nel file, che in questo caso è'#'.na_valuesaccetta un elenco di stringhe da trattare comeNA/NaN, in questo caso la stringa'Nothing'.
- Esegui il resto del codice per stampare la testa del DataFrame risultante e tracciare l'istogramma dell'
'Age'dei passeggeri a bordo del Titanic.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Import matplotlib.pyplot as plt
import matplotlib.pyplot as plt
# Assign filename: file
file = 'titanic_corrupt.txt'
# Import file: data
data = pd.read_csv(file, sep='____', comment='____', na_values=[____])
# Print the head of the DataFrame
print(data.head())
# Plot 'Age' variable in a histogram
pd.DataFrame.hist(data[['Age']])
plt.xlabel('Age (years)')
plt.ylabel('count')
plt.show()