Descripteurs, CSV et traitements de tables
Une application de vélos en libre-service doit te dire, en quelques secondes, quelle station proche de chez toi a encore des vélos et des places libres. Derrière l'écran, il y a une simple table de données et quelques traitements automatiques. Comment est-elle organisée, et comment l'interroger ? Tu vas le découvrir ici.
Descripteurs, valeurs et collections
Une donnée structurée décrit des objets de la même manière. Chaque objet (une ville, un film, un livre) est décrit par les mêmes descripteurs. Les descripteurs sont les « questions » posées sur chaque objet. Ce que l'on répond pour un objet donné est la valeur.
Un ensemble d'objets décrits par les mêmes descripteurs forme une collection. On la présente sous forme de table : une ligne par objet, une colonne par descripteur.
| nom | region | population |
|---|---|---|
| Rennes | Bretagne | 220 000 |
| Lille | Hauts-de-France | 236 000 |
| Dijon | Bourgogne-Franche-Comté | 159 000 |
Ici, les descripteurs sont nom, region et population. Pour Lille, la valeur du descripteur region est « Hauts-de-France ».
Voici une collection de trois lignes décrivant des villes : a) Donner les descripteurs de cette collection. b) Quelle est la valeur du descripteur « region » pour Lille…
Voici une collection de trois lignes décrivant des villes :
nom;region;population
Rennes;Bretagne;220000
Lille;Hauts-de-France;236000
Dijon;Bourgogne-Franche-Comté;159000
- a) Donner les descripteurs de cette collection.
- b) Quelle est la valeur du descripteur « region » pour Lille ?
- c) Quel est le format de ce fichier et quel est le séparateur ?
Dans une table de films, on trouve les descripteurs : titre, annee, duree (en minutes). a) Expliquer la différence entre un descripteur et une valeur, avec un exemple.…
Dans une table de films, on trouve les descripteurs : titre, annee, duree (en minutes).
- a) Expliquer la différence entre un descripteur et une valeur, avec un exemple.
- b) Comment trier la table pour afficher d'abord le film le plus long ?
Le format CSV
Pour échanger une table entre logiciels, on l'enregistre souvent au format CSV (Comma-Separated Values). C'est un fichier texte : une ligne du fichier par ligne de la table, et les valeurs séparées par un séparateur. La première ligne contient en général les descripteurs.
nom;region;population
Rennes;Bretagne;220000
Lille;Hauts-de-France;236000
En France, le séparateur est souvent le point-virgule, car la virgule sert de virgule décimale (9,50). On trouve aussi la virgule, la tabulation ou la barre verticale selon les sites : il faut regarder le fichier avant de l'ouvrir.
Un fichier CSV s'ouvre dans un tableur (LibreOffice Calc, Excel) ou dans un éditeur de texte. Il est léger, lisible par n'importe quel logiciel et par un programme Python : c'est un format ouvert.
Voici une collection de trois lignes décrivant des villes : a) Donner les descripteurs de cette collection. b) Quelle est la valeur du descripteur « region » pour Lille…
Voici une collection de trois lignes décrivant des villes :
nom;region;population
Rennes;Bretagne;220000
Lille;Hauts-de-France;236000
Dijon;Bourgogne-Franche-Comté;159000
- a) Donner les descripteurs de cette collection.
- b) Quelle est la valeur du descripteur « region » pour Lille ?
- c) Quel est le format de ce fichier et quel est le séparateur ?
Rechercher, filtrer, trier, calculer
Une fois la table chargée, on réalise quatre opérations de base.
-
Rechercher : retrouver la ou les lignes qui ont une valeur donnée.
-
Filtrer : garder seulement les lignes qui vérifient une condition (par exemple
age = 15). -
Trier : ordonner les lignes selon un descripteur, en ordre croissant ou décroissant.
-
Calculer : somme, moyenne, minimum, maximum, comptage sur une colonne.
Une table contient les lignes suivantes (nom, age) : (Inès, 15), (Karim, 16), (Zoé, 15), (Paul, 17). a) Filtrer les élèves de 15 ans. b) Calculer l'âge moyen de…
Une table contient les lignes suivantes (nom, age) : (Inès, 15), (Karim, 16), (Zoé, 15), (Paul, 17).
- a) Filtrer les élèves de 15 ans.
- b) Calculer l'âge moyen de l'ensemble des quatre élèves.
Une médiathèque de Grenoble fournit ce fichier CSV : a) Filtrer les livres de Hugo. b) Calculer le prix moyen des livres de Zola. c) Trier les livres par année…
Une médiathèque de Grenoble fournit ce fichier CSV :
titre;auteur;annee;prix
Les Misérables;Hugo;1862;9,50
Germinal;Zola;1885;7,20
Notre-Dame de Paris;Hugo;1831;8,90
Nana;Zola;1880;6,80
- a) Filtrer les livres de Hugo.
- b) Calculer le prix moyen des livres de Zola.
- c) Trier les livres par année croissante et donner l'ordre obtenu.
Un fichier CSV de stations de vélos en libre-service contient : station;arrondissement;velos;places. Il y a 5 stations : (A;1;12;3), (B;1;5;10), (C;2;0;15), (D;2;8;7),…
Un fichier CSV de stations de vélos en libre-service contient : station;arrondissement;velos;places. Il y a 5 stations : (A;1;12;3), (B;1;5;10), (C;2;0;15), (D;2;8;7), (E;3;20;0).
- a) Écrire la liste des stations ayant au moins un vélo et au moins une place libre.
- b) Calculer, par arrondissement, le nombre total de vélos.
- c) Une station est « saturée » si $\text{places}=0$ et « vide » si $\text{vélos}=0$. Identifier-les et expliquer comment un traitement automatique peut aider à rééquilibrer le service.
Croiser deux tables
Souvent, l'information est répartie sur deux tables pour éviter les répétitions. On les croise grâce à un descripteur commun, appelé clé, qui identifie chaque objet (un numéro, un code).
ELEVES (id, nom, classe) : (1, Jade, 2A), (2, Tom, 2B), (3, Lina, 2A).
NOTES (id, matiere, note) : (1, NSI, 14), (2, NSI, 11), (3, NSI, 17), (1, SNT, 15).
Le descripteur id est présent dans les deux tables. Pour chaque ligne de NOTES, on cherche dans ELEVES la ligne qui a le même id.
Table ELEVES (id, nom, classe) : (1, Jade, 2A), (2, Tom, 2B), (3, Lina, 2A). Table NOTES (id, matiere, note) : (1, NSI, 14), (2, NSI, 11), (3, NSI, 17), (1, SNT, 15). a)…
Table ELEVES (id, nom, classe) : (1, Jade, 2A), (2, Tom, 2B), (3, Lina, 2A).
Table NOTES (id, matiere, note) : (1, NSI, 14), (2, NSI, 11), (3, NSI, 17), (1, SNT, 15).
- a) Quel descripteur permet de croiser les deux tables ?
- b) Écrire la table obtenue en croisant les deux tables (nom, matiere, note).
- c) Calculer la moyenne en NSI des élèves de 2A.
Deux tables sont croisées : COMMUNES (code, nom, population) et ECOLES (code_commune, nb_ecoles). On observe que, après croisement, une commune n'apparaît pas dans le…
Deux tables sont croisées : COMMUNES (code, nom, population) et ECOLES (code_commune, nb_ecoles). On observe que, après croisement, une commune n'apparaît pas dans le résultat.
- a) Proposer deux causes possibles (par exemple une clé absente ou mal saisie).
- b) Pour une commune de 12 000 habitants ayant 6 écoles, calculer le nombre d'habitants par école.
- c) Expliquer pourquoi un tri sur un champ stocké comme texte peut placer « 100 » avant « 20 » et comment le corriger.
Un fichier CSV de températures contient pour 6 jours : jour;tmin;tmax avec : (1;4;11), (2;6;13), (3;3;9), (4;7;15), (5;5;12), (6;2;8). a) Calculer l'amplitude…
Un fichier CSV de températures contient pour 6 jours : jour;tmin;tmax avec : (1;4;11), (2;6;13), (3;3;9), (4;7;15), (5;5;12), (6;2;8).
- a) Calculer l'amplitude $\text{tmax}-\text{tmin}$ pour chaque jour et la moyenne des amplitudes.
- b) Déterminer le jour d'amplitude maximale.
- c) Écrire en langage naturel l'algorithme (parcours de la table) qui renvoie ce jour.
Données ouvertes
Les données ouvertes (open data) sont des données publiques, mises à disposition de tous, gratuitement, sous une licence ouverte qui autorise la réutilisation. De nombreuses communes, régions et administrations publient les leurs, par exemple sur data.gouv.fr : horaires, écoles, stations de vélos, qualité de l'air.
Avantages : transparence, création d'applications (itinéraires, cartes), recherche, gain de temps. Le format CSV, ouvert, léger et lisible par tous les logiciels, s'y prête très bien.
Précautions quand les données concernent des personnes :
-
ne pas publier de données personnelles permettant d'identifier quelqu'un (nom, adresse précise, photo) sans base légale : c'est le RGPD ;
-
anonymiser ou agréger (donner des effectifs, pas des noms), et croiser avec prudence, car deux tables anonymes peuvent permettre de ré-identifier une personne.
Le traitement automatique permet aussi de rendre un service : dans la table de stations de vélos, un programme repère les stations « vides » (velos = 0) et « saturées » (places = 0) pour envoyer les camions de rééquilibrage au bon endroit.
Une commune publie ses données en open data : liste des écoles avec leur adresse et leur effectif, sous licence ouverte. a) Expliquer ce qu'est l'open data et citer deux…
Une commune publie ses données en open data : liste des écoles avec leur adresse et leur effectif, sous licence ouverte.
- a) Expliquer ce qu'est l'open data et citer deux avantages.
- b) Donner deux précautions à prendre quand les données concernent des personnes.
- c) Pourquoi le format CSV est-il adapté à la réutilisation de ces données ?
Retour au début : l'application de vélos lit un fichier CSV, filtre les stations qui ont à la fois des vélos et des places, puis les trie par distance.
L'essentiel
-
Une collection d'objets se présente en table : une ligne par objet, une colonne par descripteur ; la case contient la valeur.
-
Le CSV est un fichier texte dont les valeurs sont séparées par un séparateur (souvent
;en France). -
Traitements de base : rechercher, filtrer, trier, calculer ; on filtre avant de calculer une moyenne.
-
On croise deux tables grâce à une clé commune ; une clé absente ou mal saisie fait disparaître une ligne.
-
Un nombre stocké comme texte se trie mal (« 100 » avant « 20 ») : convertir d'abord.
-
L'open data facilite la réutilisation, mais exige des précautions (RGPD) pour les données personnelles.