Exercices - Traitements de données en tables
Ch. 23 - Traitement de données en tables
Les exercices précédés du symbole sont à faire sur machine, en sauvegardant le fichier si nécessaire.
Les exercices précédés du symbole doivent être résolus par écrit.
Notebook Capytale pour les exercices 1 et 2 :
Exercice 1
Dans cet exercice, on utilise le fichier CSV listant les établissements scolaires du Cantal déjà rencontré dans le cours (Source : https://www.data.gouv.fr/fr/). Ce fichier utilise l’encodage UTF-8.
Avertissement : Dans cet exercice, certaines questions nécessitent la comparaison de valeurs numériques alors que les données sont toutes au format chaîne de caractères. Il faut donc penser, si besoin, à convertir les données au format numérique adéquat.
Importer ce fichier dans un programme Python et indexer les données sous la forme d’un tableau de dictionnaires nommé
table_educ
.Combien d’enregistrements contient cette table ?
Opérations de sélection :
- En utilisant une boucle, écrire des instructions permettant de définir le tableau
etab_AURILLAC
contenant les enregistrements qui correspondent à des établissement situés à Aurillac. - En utilisant une définition de tableau en compréhension, écrire une instruction permettant d’obtenir le tableau contenant les enregistrements de tous les établissements privés du Cantal.
- En utilisant une boucle, écrire des instructions permettant de définir le tableau
Opérations de projection :
- En utilisant une boucle, écrire des instructions permettant d’obtenir le tableau de tous les codes UAI des établissements du Cantal.
- En utilisant une définition de tableau en compréhension, écrire une instruction permettant d’obtenir le tableau de tous les noms d’établissements utilisés dans le Cantal.
- On souhaite obtenir le tableau des noms de communes dans lesquelles existe au moins un établissement scolaire, sans répétition (une commune dans laquelle existent trois établissements ne doit apparaître qu’une fois). Trouver une solution pour ce faire.
Opérations de tri :
- Trier les données par ordre croissant de code postaux.
- Trier les données d’Ouest en Est, puis du Nord au Sud.
- Trier les données suivant deux critères : d’abord la commune, puis à l’intérieur de chaque commmune, selin le statut : public en premier, privé en dernier.
Opération de jointure :
Importer le fichier CSV
population_Cantal.csv
et indexer les données sous la forme d’un tableau de dictionnaires nommépopulation
(Source des données : Insee, Recensement de la population 2019). Ce fichier utilise l’encodage UTF-8.Attention: Ouvrir d’abord le fichier dans Notepad ++ et observer le délimiteur utilisé, le nom des attributs, …
Combien d’enregistrements contient cette table ?
Écrire les instructions permettant d’effectuer la jointure entre les tables
table_educ
etpopulation
sous la forme d’une table nomméenew_table
qui reprend tous les attributs de la tabletable_educ
en ajoutant à chaque enregistrement la population de la commune considérée sous la forme d’un champ nommé “population”.Enregistrer les données de la table
new_table
dans un nouveau fichier CSV nomméexo1_jointure.csv
.Ouvrir ce fichier dans un tableur. Certains enregistrements n’ont pas de valeur pour le champ “population”. Chercher la cause de cette anomalie et essayer de la corriger.
Lorsqu’on rapproche deux tables, il faut toujours veiller à la cohérence des noms des attributs, des formats des données (domaines de valeurs), aux doublons, …
Cela implique souvent un travail préliminaire de formatage des données avant de passer à leur exploitation proprement dite. Ce formatage a été fait pour vous dans cet exercice, sauf pour le petit problème restant qui est apparu dans la dernière question.
Exercice 2
Pour s’entraîner, on reprend le fichier population_Cantal.csv
. Pour chaque question, écrire des instructions Python permettant d’y répondre. Vous pourrez dans certains cas proposer plusieurs solutions.
- Construire la table des mêmes données, mais triées par population décroissante.
- Faire le tableau des noms de communes dont le nom complet se termine par “AC”. Combien y en a-t-il ?
- Construire la table des enregistrements correspondant aux communes dont la population est comprise au sens large entre 1000 et 2000 habitants.
- Question ouverte : construire le tableau des noms de communes qui sont composés de plusieurs mots.