prof404
← Retour aux ressources du module
Sommaire (8 sections) · 9 min
Ce que tu travailles iciCollecter et traiter les donnéesPourquoi ces compétences ?
  • BC01Collecter et traiter les données. Aller chercher la donnée et la rendre fiable : écrire les scripts qui l'extraient, repérer ce qui manque ou se contredit, et décider quoi en faire.

Ce sont les compétences du titre RNCP 38616, celles sur lesquelles le jury évalue.

Contrôler les identifiants d'un export CSV

Tu dois importer un export où une ligne représente une commande. Le fichier s'ouvre et contient douze lignes, mais cela ne prouve pas qu'il contient douze commandes différentes. Une commande répétée en remplace peut-être une autre.

Le contrôle se fait avant l'import. Le contrôle qualité du TP SQL reprend le travail après chargement, et la fiche « Rafraîchir une source BIBusiness Intelligence : transformer des données brutes en tableaux de bord lisibles par des gens qui ne font pas de SQL. et garder sa trace » suit ensuite une nouvelle version jusqu'à l'écran.

Observer l'écart

Enregistre ces quatre fichiers dans un même dossier :

Si un lien affiche le texte du fichier, fais un clic droit sur le lien puis choisis « Enregistrer le lien sous… ». Garde le nom et son extension .csv ou .py, sans ajouter .txt.

Ouvre les deux fichiers de commandes dans Chrome ou dans un tableur. Ils ont le même en-tête et le même nombre de lignes. Prédis si leur import donnera la même population de commandes, puis compare leurs deux dernières lignes.

Une population est l'ensemble exact des éléments étudiés. Ici, une ligne doit représenter une commande. order_id est l'identifiant : la valeur qui distingue une commande des autres.

Le fichier altéré répète un identifiant déjà présent. Le nombre de lignes reste douze, mais il ne reste que onze identifiants différents. Un simple comptage des lignes laisserait passer l'écart.

Écrire la règle avant l'import

Si chaque ligne doit porter une commande différente, trois nombres doivent être égaux :

nombre de lignes = identifiants renseignés = identifiants distincts

Un identifiant renseigné n'est ni vide ni composé seulement d'espaces. Un identifiant distinct n'est compté qu'une fois, même s'il apparaît sur plusieurs lignes. Le script retire les espaces au début et à la fin avant de comparer : A et A comptent comme le même identifiant. Il ne réécrit pas le fichier.

Cette règle ne dit pas que toutes les autres colonnes sont justes. Elle répond à une question précise : le fichier peut-il représenter une ligne par commande ?

Exécuter le contrôle

Place le script et les CSV dans le même dossier. Le script utilise seulement Python 3. Sous Windows, ouvre PowerShell dans ce dossier et lance :

py controler_identifiant.py commandes_reference.csv order_id

Si py n'existe pas mais que python fonctionne, remplace py par python. La référence doit afficher douze lignes, douze identifiants renseignés, douze identifiants distincts et CONTRÔLE : OK.

Avant de contrôler la copie altérée, prédis lequel de ces trois nombres va changer. Lance ensuite :

py controler_identifiant.py commandes_a_controler.csv order_id

Le résultat affiche douze lignes, douze identifiants renseignés, onze identifiants distincts et l'identifiant répété. CONTRÔLE : ECHEC constitue le résultat attendu : le script a détecté le défaut préparé pour l'exercice.

Si la commande signale que order_id est absent, lis les en-têtes affichés. Le nom donné au script doit correspondre exactement à une colonne du CSV.

Si le script signale des en-têtes répétés, arrête l'import : deux colonnes de même nom rendent la lecture ambiguë. Retrouve la définition des colonnes à la source avant de les renommer ; supprimer une colonne au hasard peut masquer l'identifiant que tu devais contrôler.

Un fichier contenant seulement l'en-tête affiche zéro partout et passe la règle d'unicité. Cela ne prouve pas qu'il contient les commandes attendues. Pour cet extrait, zéro ligne ne convient pas : les trois nombres doivent valoir douze.

Corriger sans masquer la perte

Supprimer une des deux lignes répétées ferait réussir le contrôle avec onze lignes. Cela retirerait le doublon, mais ne restaurerait pas la commande perdue.

Compare la copie altérée à commandes_reference.csv, puis restaure la ligne qui a été remplacée dans un éditeur de texte. Enregistre le résultat sous commandes_corrigees.csv en UTF-8, avec des virgules comme séparateurs, afin de conserver le fichier reçu comme preuve de l'incident. Relance :

py controler_identifiant.py commandes_corrigees.csv order_id

Le contrôle est réussi lorsque les trois nombres valent douze et que le script affiche CONTRÔLE : OK. Ouvre aussi la ligne restaurée et explique pourquoi sa copie depuis la référence répond au défaut observé. Le script confirme l'unicité ; il ne décide pas quelle ligne métier devait manquer.

Si le message de colonne absente affiche tout l'en-tête comme un seul nom, par exemple order_id;customer_id;..., ton logiciel a enregistré des points-virgules. Réenregistre le CSV avec des virgules avant de relancer.

Utiliser ChatGPT comme lecteur, puis vérifier

Tu peux donner à ChatGPT la sortie du script, sans lui transmettre de données client, et demander :

Explique quelle égalité échoue et propose deux corrections possibles. Pour chacune, dis quelle information risque d'être perdue. Ne choisis pas à ma place.

Compare sa réponse au fichier. Refuse une proposition qui fait seulement passer le voyant au vert sans expliquer la population obtenue. Dans ton compte rendu, écris le défaut, la correction retenue et la commande qui la vérifie.

Transfert sur un autre export

Tu reçois maintenant clients_transfert.csv, dont une copie a été altérée pour l'exercice. Une ligne doit représenter un enregistrement client, identifié par customer_id. Sans reprendre la référence des commandes :

  1. écris l'égalité attendue pour ce fichier ;
  2. exécute le contrôle avec la bonne colonne ;
  3. repère les lignes concernées par l'échec ;
  4. décide si tu peux corriger avec les seuls fichiers fournis ou si tu dois demander un nouvel export à la source ;
  5. écris le critère qui autorisera l'import.

Pour te débloquer, commence par afficher la première ligne du CSV et vérifie le nom exact de la colonne. Ton résultat est vérifiable si tu fournis la commande, les trois nombres observés et ta décision. Ne fabrique pas un identifiant : une valeur inventée ferait réussir le script sans restaurer l'identité du client.

Ce que tu rends

  • commandes_corrigees.csv ;
  • les sorties des deux contrôles finaux ;
  • une note de cinq lignes : maille attendue, identifiant, défaut observé, correction ou demande à la source, critère d'autorisation de l'import.

Une autre personne doit pouvoir relancer les deux commandes et obtenir la même décision sans te demander ce que tu as fait dans le tableur.

Au besoin : vérifier les valeurs après import

L’unicité ne suffit pas non plus après l’import. Si un filtre donne un résultat inattendu malgré un total identique, ouvre cet exercice facultatif. Papier et calculatrice suffisent.

Comparer un import qui conserve le total

Une ligne représente une opération de caisse. Les données et le résultat d’import sont fabriqués pour cet exercice, sans essai d’un logiciel. Le service précise : identifiant de quatre caractères, zéros compris ; dates en jour/mois/année ; montants en euros, avec un point décimal.

Source complète :

operation,date_operation,montant_eur
0042,03/04/2026,12.50
0043,05/04/2026,7.50
0044,06/04/2026,10.00

Résultat d’import fabriqué, dates affichées en année-mois-jour :

operation,date_operation,montant_eur
42,2026-03-04,12.50
43,2026-05-04,7.50
44,2026-06-04,10.00

Compte les lignes, les identifiants distincts et le total de chaque version. Puis écris la première date en toutes lettres dans chacune. Prédis le nombre d’opérations et le montant retenus par un filtre sur avril. Quels contrôles compléterais-tu pour autoriser l’utilisation de cet import ?

Contrôler les valeurs et le filtre

Les deux versions ont trois lignes, trois identifiants distincts et 12,50 + 7,50 + 10 = 30 euros. Pourtant, 0042 est devenu 42 et la date du 3 avril est devenue le 4 marsMissing At Random : hypothèse où, une fois prises en compte les données observées, la probabilité qu'une valeur manque ne dépend plus des valeurs absentes ; elle peut dépendre de ce qui est observé. Les seules données observées ne permettent pas de confirmer cette hypothèse.. La source contient trois opérations en avril, pour 30 euros. Dans le résultat fabriqué, le filtre sur avril ne retient aucune ligne. Selon l’outil et sa règle d’agrégation, le résultat peut être vide ou égal à zéro ; dans les deux cas, il ne prouve pas que la source ne contient aucune opération.

Conserve les identifiants en texte et interprète les dates source en jour/mois/année. Changer leur affichage ne répare pas une inversion déjà interprétée. Repars de la source intacte dans une copie de travail ; contrôle 0042, le 3 avril, puis les autres lignes et le filtre, en plus des effectifs et du total. Si la règle d’une date ambiguë manque, demande-la au producteur.

Transfert. Une ligne est maintenant une intervention de maintenance. Les codes ont trois caractères ; les dates sont en jour/mois/année :

equipement,date_intervention,duree_minutes
007,11/12/2026,40
010,12/11/2026,20

Sans reprendre les valeurs du premier cas, écris les codes et dates à préserver, le total des durées et le résultat attendu pour décembre. Pourquoi un total inchangé pourrait-il encore masquer une erreur ?

Vérifier le contrôle de maintenance

Conserve 007 au 11 décembre et 010 au 12 novembre : deux lignes et 40 + 20 = 60 minutes. Décembre doit retenir l’intervention de 007, pour 40 minutes. Inverser jour et mois conserverait 60 minutes au total, mais ferait retenir l’autre intervention en décembre, pour 20 minutes.

À la fin de la leçon

Le quiz de la leçon

Choisis une réponse, puis lis l’explication avant de continuer.

  • 5 questions
  • 3 min par question
  • Une explication après chaque réponse

Le chrono démarre à la première question. Un clic sur une réponse valide ton choix.