Plus facile à lire avec un fond crème, une teinte, plus de contraste ou un texte plus grand ? Choisissez vos couleurs et votre texte, une fois pour toutes les pages.

Leçon gratuite

Nettoyer des données avant de les utiliser

Après cette leçon: Je peux repérer et corriger les erreurs d'un fichier de données.

Leçon de 50 min3 commandesLab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Une journée à 99,9 degrés

Nettoyer des données, c'est repérer les erreurs d'un fichier et les corriger avant de calculer quoi que ce soit. Un résultat calculé sur des données sales est faux, même si le calcul est juste.

Un loueur de vélos garde un fichier de 365 jours. Un jour, la température est de 99,9 degrés. La moyenne de l'année monte, et la conclusion du rapport est fausse sans que personne le voie.

À la fin de cette leçon

Remarque

Je peux repérer et corriger les erreurs d'un fichier de données.

Mots clés

MotCe que ça veut direExemple
Donnée manquanteune case vide : rien n'a été notéNaN
Doublonune ligne qui apparaît deux fois
Valeur aberranteune valeur impossible ou très éloignée des autres99.9
Nettoyagecorriger ou écarter les erreurs d'un fichier
Médianela valeur du milieu quand on range les nombres

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Avant de commencer

Remarque

Appuie sur Start the lab. Le lab est un JupyterLab rien qu'à toi, et il met une minute à démarrer. Le dossier de travail contient hires.csv. Il a une ligne par jour de 2025 : la météo, la température, la pluie et le nombre de vélos loués (hires). Ton terminal lance de petits scripts du dossier steps.

Lis les premières lignes du fichier

Commande
docker exec jupyter head -3 hires.csv

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Cinq fautes reviennent dans presque tous les fichiers

Un fichier réel a presque toujours des fautes. La première chose à faire est de les chercher.

Des cases manquent. Une même ligne est présente deux fois. Une valeur est impossible, comme 99,9 degrés à Lille. Un nombre est écrit comme du texte. Un mot s'écrit de plusieurs façons.

Exemple : cinq fautes d'un fichier de locations

FauteCe qu'on voit dans le fichierEffet sur un calcul
Donnée manquanteUne température vide, cinq foisLa moyenne ignore ces jours
DoublonDeux jours écrits deux foisCes jours comptent double
Valeur aberranteUne température de 99,9La moyenne monte à tort
Nombre écrit en texte« unknown » ou -5 dans les locationsLe total est faux ou refusé
Écritures différentessunny, SUNNY et « Sunny » avec un espaceUn groupe est coupé en trois

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

Cherche les fautes d'une copie abîmée

Commande
docker exec jupyter python3 steps/messy.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Supprimer, remplacer ou garder une valeur

Un doublon se supprime : on garde une seule ligne. Une écriture différente se remplace : on enlève les espaces et on passe tout en minuscules.

Une valeur impossible devient une donnée manquante. Une donnée manquante se remplace par une valeur raisonnable, ou la ligne s'écarte. Note toujours ce que tu as fait, pour pouvoir l'expliquer.

Nettoie la copie abîmée étape par étape

Commande
docker exec jupyter python3 steps/clean.py

Affichée ici, non exécutée. Créez un compte gratuit pour appuyer sur Exécuter et la saisir dans le terminal de votre propre labo.

Exemple : ce que change chaque étape

ÉtapeLignes restantesTempératures manquantes
Fichier abîmé3675
Doublons retirés3655
Locations impossibles écartées3635
99,9 devenu manquant3636
Manquantes remplies par la médiane3630

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

La médiane résiste aux valeurs aberrantes

Pour remplir une case manquante, on prend souvent la moyenne ou la médiane des autres jours. La médiane est la valeur du milieu quand on range les nombres.

Une valeur aberrante tire la moyenne vers le haut. Elle ne bouge presque pas la médiane. Pour remplir des cases, la médiane est donc plus sûre.

Une erreur fréquente

Attention

Beaucoup remplissent toutes les cases manquantes par 0. Mais 0 degré est une vraie température : les moyennes baissent à tort. Remplis par la médiane des autres jours, ou laisse la case manquante et écarte la ligne du calcul.

À toi : l'effet d'une erreur sur la moyenne

Code: python
# Cinq températures relevées. Une valeur est une erreur.
temperatures = [12.0, 11.5, 99.5, 10.5, 12.5]
total = 0
for t in temperatures:
    total = total + t
print("moyenne avec l'erreur :", total / len(temperatures))
# Retire 99.5 de la liste et relance : la moyenne baisse beaucoup.

Pour aller plus loin : les seuils

Le seuil de 45 degrés a été choisi à la main. Pour un fichier de pluie en millimètres, quel seuil prendrais-tu ?

Ouvre hires.csv dans JupyterLab et cherche à l'œil le plus grand nombre de locations. Est-ce une erreur, ou un jour vraiment très chargé ? Comment le saurais-tu ?

À propos de ce labo et de sa source: Lab JupyterLab de science des données : pandas, Matplotlib et scikit-learn dans le navigateur

Vous enseignez à une classe ? Proposez ce module à vos étudiants avec un guide de l'enseignant, des devoirs corrigés et un laboratoire pour chaque étudiant.