Leçons ·
Nettoyer les données
Repérer les cases vides, les remplir, retirer les doublons et corriger les types, avec les ventes d'Awa.
Transcription
Les vendeuses d'Awa remplissent le cahier à la main, et certains jours, elles vont trop vite. Regardez ce fichier : il y a des cases vides, et une même vente semble écrite deux fois. Et si elle calcule quand même ? Alors son résultat sera faux, et rien ne l'avertira. Il faut donc nettoyer les données avant de calculer.
Pour trouver les trous, la méthode isna regarde chaque case et répond vrai si elle est vide. Puis la méthode sum compte ces réponses, colonne par colonne. Regardez à droite : les cases vides sont entourées de pointillés.
Le résultat est clair : il manque une ville, un article et un montant. Chaque colonne a donc une seule case vide, et jamais sur la même ligne. Maintenant qu'elle le sait, Awa doit décider quoi faire de chaque trou.
Sans la ville, cette vente ne peut servir à aucun calcul par ville. Awa retire donc cette ligne avec la méthode dropna, en précisant la colonne à regarder. Regardez : la ligne numéro 4 disparaît. Le mot subset veut dire une partie : on lui demande de regarder seulement la colonne ville, sinon il retirerait toute ligne qui a un trou n'importe où. Remarquez aussi que la ligne 5 garde son numéro : pandas ne renumérote pas les lignes.
Pour l'article, le montant de la vente reste utile, et on ne veut donc pas perdre la ligne. La méthode fillna remplit la case vide, ici avec le mot Inconnu. Elle écrit le résultat dans la même colonne, car sinon le tableau ne changerait pas. Regardez la ligne 2 : le mot est maintenant dans la case.
Et le montant vide, elle met la moyenne ? Regardez la vente de tissu à 50 000 francs. Cette seule vente tire la moyenne jusqu'à environ 9617 francs, alors que presque toutes les autres sont bien plus petites. La médiane, elle, est la valeur du milieu quand on range les montants dans l'ordre, et elle vaut ici 1900. Comme il y a six montants, le milieu tombe entre 1500 et 2300, et on prend la valeur entre les deux.
Awa remplit donc le montant vide avec la médiane. Cette fois, le tableau n'a plus aucune case vide. Regardez la ligne 6 : elle contient maintenant 1900, et la grosse vente de tissu n'a donc pas déformé cette valeur.
Regardez maintenant les lignes 1 et 5 : même ville, même article, même montant. La méthode duplicated repère une ligne identique à une autre plus haut, et sum les compte. Il y en a une. Le mot duplicated veut dire en double, et il ne marque que la deuxième ligne, pas la première.
Elle peut donc la supprimer tout de suite ? Attention : deux clients peuvent très bien acheter le même riz au même prix. Elle vérifie donc d'abord que c'est une erreur de saisie. Ensuite seulement, la méthode drop_duplicates retire le doublon. Elle garde la première ligne et retire seulement la seconde.
Voici un dernier piège. Dans ce fichier, quelqu'un a écrit le mot inconnu à la place d'un montant. Pandas lit donc toute la colonne comme du texte. Regardez ce que donne la somme : les montants sont collés les uns aux autres, comme des mots.
La fonction to_numeric transforme la colonne en nombres. Et avec errors égale coerce, ce qu'elle ne peut pas lire devient une case vide, au lieu de provoquer une erreur. Le mot coerce veut dire forcer : on force la conversion, et on accepte de perdre ce qui n'est pas un nombre.
Cette fois, la somme donne 4600, et la case vide nous rappelle qu'il reste une vente à vérifier.
Dans la leçon, nettoyez à votre tour un vrai jeu de données, puis relisez un script écrit par une intelligence artificielle. Essayez sans revoir la vidéo : c'est cet effort qui fait retenir.
Voix : Google Chirp 3 HD (Despina, Enceladus).
Photos : One Idea LLC, StockSnap, CC0

