cassionAnalyse de données

Exercice · Débutant

Lire cet export sans le casser

Un CSV, six défauts, et une lecture qui doit tous les survivre. Écrivez l'appel read_csv et les quatre contrôles qui prouvent qu'il a fonctionné, puis dites ce que chaque défaut aurait coûté.

Python45 min

Chaque défaut de cet exercice se trouve dans le fichier que vous avez déjà. Aucun ne lève d’erreur. Tous changent un chiffre.

Le fichier

muac-screening-artibonite-2024.v1.csv — 4 218 enregistrements de dépistage de douze communes de l’Artibonite, en Haïti. Synthétique, et de la même forme que le fichier réel.

La tâche

Écrivez un seul appel read_csv, plus ce qui doit le suivre, produisant un DataFrame où :

  1. muac_mm ne contient aucune valeur signifiant « non mesuré »
  2. child_id et commune sont du texte, non des nombres
  3. screening_date est un datetime, analysé avec un format explicite
  4. outcome est une catégorielle au vocabulaire déclaré
  5. oedema est un booléen nullable — True, False ou manquant, jamais une chaîne
  6. le nombre de lignes fait l’objet d’une assertion, pour qu’un fichier tronqué échoue au lieu de rapporter une charge de cas plus faible

Écrivez ensuite les quatre contrôles de la leçon 3 — forme, types, manquants, première ligne — et exécutez-les.

Ce qu’il faut rendre

Un seul fichier Python qui s’exécute de haut en bas et affiche :

  • le PB moyen avant et après la déclaration de la sentinelle
  • le nombre d’enregistrements exclus par chacune des six décisions ci-dessus
  • le nombre de valeurs de outcome tombées hors de votre vocabulaire déclaré
  • le nombre de valeurs de oedema que votre table booléenne n’a pas couvertes

Les questions à traiter en prose

Trois phrases chacune. Ce sont elles, l’exercice ; le code n’est que le moyen d’y arriver.

1. Le PB moyen se déplace quand vous déclarez la sentinelle. De combien, dans quel sens, et pourquoi le chiffre faux est-il plus difficile à repérer qu’un chiffre manifestement cassé ?

2. Deux communes ont saisi les œdèmes en Y/N plutôt qu’en true/false. Si vous aviez converti cette colonne avec astype(bool) au lieu d’établir une correspondance, que serait devenu chaque "false", et qu’est-ce que cela aurait fait au décompte des cas de MAS ?

3. Votre catégorielle outcome a transformé certaines valeurs en manquants. Lesquelles, combien de lignes, et que doit-il se passer ensuite — est-ce une décision de nettoyage, une question à poser à qui a saisi les données, ou les deux ?

Comment savoir que c’est terminé

Une autre personne doit pouvoir exécuter votre fichier sur une copie propre du dépôt et obtenir les mêmes chiffres affichés. Si votre fichier contient un chemin commençant par /Users ou C:, ce n’est pas terminé — voir la leçon 2.

Ce que cet exercice n’est pas

Il ne vous demande pas de décider quoi faire des valeurs manquantes. Supprimer, imputer ou rapporter séparément est une décision d’analyse qui relève d’un journal de nettoyage, et Fondamentaux de l’analyse de données la traite. Ici vous vous assurez seulement qu’un code cesse de se faire passer pour une mesure.