Première · Traitement de données en tables

Rechercher et vérifier des données dans une table

Une table peut être correctement importée et pourtant contenir des doublons, des valeurs impossibles ou des identifiants contradictoires. Avant de tirer une conclusion, il faut poser un critère précis et examiner la cohérence des données auxquelles on l’applique.

SofienAvec SofienIngénieur et enseignant en informatique
Dans ce chapitre

Un cap pour ce chapitre

Ce que vous saurez faire

  • Sélectionner des lignes selon plusieurs critères
  • Distinguer doublon exact et conflit d’identifiant
  • Contrôler des domaines de valeurs sans modifier arbitrairement les données
Les bases utiles pour commencer

Une sélection conserve des lignes complètes

Filtrer une table consiste à conserver les enregistrements qui satisfont une condition. Pour chercher les stations d’altitude supérieure à 500 mètres et de température inférieure à 10 degrés, on évalue les deux critères sur chaque ligne. Les champs de la ligne retenue restent associés. Sélectionner séparément une liste de villes et une liste de températures avec des règles différentes risquerait de perdre les correspondances. Dans un tableau de dictionnaires, la condition se lit directement avec les noms des champs, ce qui rend le lien entre question et programme plus explicite.

Le résultat d’une sélection est encore une table avec les mêmes descripteurs. Il peut contenir zéro, une ou plusieurs lignes. Une absence de résultat n’est pas automatiquement une erreur : aucune donnée peut simplement satisfaire les critères demandés.

Traduire exactement la question

Le mot et demande que tous les critères soient satisfaits ; ou suffit lorsqu’au moins un convient. Il faut préciser les frontières : « au moins 500 » signifie >= 500, tandis que « plus de 500 » signifie > 500. Les parenthèses rendent les groupements visibles lorsqu’on combine plusieurs opérateurs. Avant d’appliquer le filtre à mille lignes, construisez quelques exemples qui doivent être acceptés ou refusés. Cette préparation évite de valider un résultat seulement parce qu’il contient plusieurs noms familiers ou parce que sa taille paraît raisonnable.

Un contre-exemple utile satisfait exactement une des conditions. Il sépare ainsi les comportements de et et ou. Une ligne qui satisfait les deux est acceptée dans les deux versions et ne permet pas de diagnostiquer ce choix logique.

Deux formes de répétition à distinguer

Un doublon exact répète les mêmes valeurs dans tous les champs. Un même identifiant présent avec des valeurs différentes peut signaler une incohérence, mais aussi plusieurs observations légitimes si le modèle représente une série temporelle. Le domaine doit préciser ce qui identifie une ligne : une station seule, ou une station et une date, par exemple. Supprimer toutes les répétitions d’un nom sans comprendre leur sens peut effacer de vraies données. La recherche de doublons doit donc annoncer les champs comparés et la règle de conservation éventuelle.

Une clé composée peut identifier une observation : station et date, par exemple. Deux mesures de la même station à des dates différentes ne sont alors pas des doublons. La définition d’une ligne unique dépend du modèle, et pas seulement d’une colonne répétée.

Contrôler puis expliquer les anomalies

Une note de 27 sur 20, une date de fin antérieure à la date de début ou un code vide peuvent contredire le domaine annoncé. Ces contrôles détectent des anomalies, mais ne permettent pas toujours de reconstruire la bonne valeur. Il vaut mieux signaler la ligne, examiner sa provenance ou l’exclure explicitement d’un calcul selon une règle définie. On peut conserver une table des anomalies pour justifier la préparation des données. Le but n’est pas de rendre tous les résultats esthétiquement plausibles, mais de préserver la fiabilité de l’analyse.

stations = [
    {"code": "A", "altitude": 600, "temperature": 8},
    {"code": "B", "altitude": 300, "temperature": 7},
    {"code": "C", "altitude": 800, "temperature": 12},
    {"code": "D", "altitude": 500, "temperature": 9}
]
selection = [ligne for ligne in stations
             if ligne["altitude"] >= 500
             and ligne["temperature"] < 10]
print(selection)

Un contrôle de domaine vérifie ce qui est autorisé, sans garantir que toute valeur autorisée est exacte. Une note de douze peut être mal saisie tout en restant dans zéro à vingt. Détecter les incohérences visibles ne remplace pas la vérification de provenance.

Construire une table de décision avant le filtre

Pour le critère altitude au moins cinq cents et température strictement inférieure à dix, A avec six cents et huit convient. B avec trois cents et sept échoue seulement sur l’altitude ; C avec huit cents et douze échoue seulement sur la température ; D avec cinq cents et neuf convient à la frontière. Ces quatre lignes testent donc des difficultés complémentaires.

Remplacer le et par ou retient les quatre stations. Remplacer l’altitude large par une inégalité stricte supprime D. Les réponses changent pour des raisons différentes, qu’un simple comptage final ne suffit pas toujours à identifier. Conservez les valeurs de chaque comparaison dans une trace.

Préparer une analyse et documenter son effectif

Une table de notes contient douze, quinze, vingt-sept et neuf, alors que le domaine annoncé va de zéro à vingt. Si la règle d’analyse exclut les valeurs hors domaine, les trois notes conservées totalisent trente-six et leur moyenne vaut douze. Il faut annoncer que cette moyenne porte sur trois observations, avec une anomalie signalée.

Ramener vingt-sept à vingt produirait une autre moyenne sans justification sur la vraie note. Supprimer silencieusement la ligne cacherait aussi une décision importante. Une préparation fiable conserve les lignes acceptées et un relevé des anomalies, afin que le résultat puisse être compris et recalculé.

À vous de faire varier les choses

Votre filtre répond-il à la question ?

Modifiez le seuil d’altitude et l’opérateur logique. Examinez séparément les critères de chaque station.

Lire le résultat de l’expérience initiale

Stations retenues : A, D

Le critère de température reste strict. Seuils et opérateur modifient la question posée aux mêmes données.

StationAltitudeTempératureAltitude valideTempérature valideDécision
A6008truetrueRetenue
B3007falsetrueExclue
C80012truefalseExclue
D5009truetrueRetenue

Un filtre se vérifie avec des lignes qui séparent les critères, pas seulement avec celles qui satisfont tout.

De la compréhension à l’autonomie

À vous de résoudre

Cherchez d’abord par vous-même. Vérifiez les résultats demandés, utilisez les indices si nécessaire, puis comparez votre méthode à la correction.

Exercice 1 · S’entraîner#

Appliquer deux critères

On dispose de A : altitude 600, température 8 ; B : 300, 7 ; C : 800, 12 ; D : 500, 9. Sélectionnez altitude >= 500 et température < 10.

Indice 1

Évaluez séparément chaque comparaison.

Indice 2

Une ligne doit satisfaire les deux pour être conservée.

Comprendre la correction

A satisfait les deux critères et est retenue. B échoue sur l’altitude ; C échoue sur la température. D est retenue car 500 est inclus par >= et 9 est inférieur à 10. Le résultat contient donc A et D, avec toutes leurs informations associées.

Exercice 2 · S’entraîner#

Un ou trop large

Avec les mêmes données, quel résultat obtient-on en remplaçant and par or ? Expliquez ce qui change.

Indice 1

Chaque station satisfait-elle au moins une des deux conditions ?

Indice 2

B a une température convenable et C une altitude convenable.

Comprendre la correction

Les quatre stations sont retenues. A et D satisfont les deux critères, B satisfait celui de température et C celui d’altitude. Le remplacement élargit donc la sélection. Il ne s’agit pas d’une optimisation équivalente : le programme répond à une autre question que la recherche des stations à la fois hautes et froides.

Exercice 3 · S’entraîner#

Doublon ou conflit

Une table d’inscriptions censée contenir une ligne par identifiant possède (17, Lina, 1G2), (17, Lina, 1G2) et (17, Lina, 1G3). Classez les problèmes.

Indice 1

Comparez d’abord tous les champs, puis seulement l’identifiant.

Indice 2

Le modèle interdit plusieurs lignes différentes pour la même inscription.

Comprendre la correction

Les deux premières lignes sont des doublons exacts. La troisième partage l’identifiant 17 mais indique une autre classe : elle crée un conflit à résoudre selon la provenance des données. Supprimer automatiquement une ligne au hasard pourrait conserver la mauvaise classe. Le contrôle détecte le problème sans inventer la bonne réponse.

Exercice 4 · S’entraîner#

Une moyenne suspecte

Des notes sur 20 valent 12, 15, 27 et 9. Pourquoi remplacer 27 par 20 sans information supplémentaire n’est-il pas justifié ?

Indice 1

Détecter une valeur invalide ne révèle pas sa valeur correcte.

Indice 2

27 peut provenir d’une saisie erronée de plusieurs manières.

Comprendre la correction

La valeur 27 sort du domaine autorisé, mais rien ne prouve que la note réelle soit 20. Elle pourrait être 17, 7 ou une note sur un autre barème. Il faut signaler l’anomalie et rechercher la donnée source, ou appliquer une règle d’exclusion explicitement annoncée avant de calculer la moyenne.

Exercice 5 · Approfondir et relier#

Des frontières indépendantes

On dispose de A : altitude 500, température 10 ; B : 500,9 ; C : 600,10 ; D : 400,8. Appliquez altitude au moins 500 et température strictement inférieure à 10. Comparez avec une température inférieure ou égale à 10.

Indice 1

Une frontière large et une frontière stricte se traitent séparément.

Indice 2

D échoue toujours sur l’altitude.

Comprendre la correction

Avec la température stricte, seule B est retenue. Avec la température large, A, B et C conviennent. D reste exclue dans les deux versions. La variation du nombre de lignes vient uniquement du traitement de la température dix, puisque la borne d’altitude reste identique.

Exercice 6 · Approfondir et relier#

Choisir la clé d’une observation

Une table contient (A, lundi, 12), (A, mardi, 14), (A, lundi, 12) et (A, lundi, 15). Le modèle prévoit une mesure par station et par jour. Identifiez le doublon exact et le conflit, puis proposez la clé composée.

Indice 1

La station seule ne distingue pas les journées.

Indice 2

Les mêmes station et jour doivent avoir une seule mesure.

Comprendre la correction

La première et la troisième ligne sont des doublons exacts. La quatrième partage A et lundi avec elles mais donne quinze au lieu de douze : c’est un conflit. La clé composée station et jour distingue le mardi du lundi. La bonne mesure du lundi doit être vérifiée à la source.

Exercice 7 · Approfondir et relier#

Une moyenne avec un effectif annoncé

Les notes sont 12, 15, 27 et 9 sur vingt. La règle exclut et signale les valeurs hors de zéro à vingt inclus. Calculez somme, effectif et moyenne après contrôle. Une note 20 serait-elle retenue ? Pourquoi le contrôle ne permet-il pas de corriger 27 ?

Indice 1

La borne vingt est incluse dans le domaine.

Indice 2

Une anomalie ne révèle pas la valeur réellement attendue.

Comprendre la correction

On conserve douze, quinze et neuf : somme trente-six, effectif trois, moyenne douze. Vingt serait une note valide. Rien ne permet de savoir si vingt-sept provient de dix-sept, sept ou d’un autre barème ; la remplacer arbitrairement inventerait une valeur. Le résultat doit préciser l’exclusion d’une ligne.

Les erreurs qui méritent un détour

Nettoyer sans conserver la règle utilisée
Une transformation doit être explicable pour que les résultats puissent être vérifiés.
Confondre même nom et même enregistrement
Définissez les champs qui identifient une observation avant de supprimer des répétitions.

La fiche à garder

L’essentiel à retenir

  • Une sélection répond à un critère logique précis.
  • Les doublons dépendent des champs et du modèle étudiés.
  • Détecter une anomalie ne suffit pas à connaître sa correction.

Le prochain pas

Retrouver le catalogue de Première

Ce chapitre s’appuie sur le programme officiel de Première (PDF, nouvel onglet). Les explications et exercices sont proposés pour l’apprentissage.