Personnaliser votre importation avec pandas
Le module pandas gère très bien bon nombre de problèmes que vous rencontrerez lors de l'importation de données en science des données, comme la présence de commentaires dans les fichiers plats, les lignes vides et les valeurs manquantes (NA ou NaN). Pour conclure ce chapitre, vous allez importer une copie corrompue du jeu de données Titanic, titanic_corrupt.txt, qui contient des commentaires après le caractère '#' et qui est délimité par des tabulations.
Les arguments clés de pd.read_csv() incluent :
sepdéfinit le délimiteur attendu.- Vous pouvez utiliser
','pour un format délimité par des virgules. - Vous pouvez utiliser
'\t'pour un format délimité par des tabulations.
- Vous pouvez utiliser
commentindique les caractères après lesquels se trouvent les commentaires dans le fichier, ce qui signifie que tout texte commençant par ces caractères doit être ignoré.na_valuesprend une liste de chaînes à reconnaître commeNA/NaN. Par défaut, certaines valeurs sont déjà reconnues commeNA/NaN. Fournir cet argument ajoute d'autres valeurs à reconnaître.
Cette activité fait partie du cours
Introduction à l'importation de données en Python
Instructions de l’exercice
- Complétez les arguments de
pd.read_csv()pour importer correctementtitanic_corrupt.txtavec pandas :sepdéfinit le délimiteur à utiliser et fonctionne comme l'argumentdelimiterdenp.loadtxt(). Notez que le fichier que vous importez est délimité par des tabulations.commentreçoit les caractères après lesquels se trouvent les commentaires dans le fichier, ici'#'.na_valuesreçoit une liste de chaînes à traiter commeNA/NaN, dans ce cas la chaîne'Nothing'.
- Exécutez le reste du code pour afficher l'en-tête du DataFrame obtenu et tracer l'histogramme de l'
'Age'des passagers à bord du Titanic.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# 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()