• Aucun résultat trouvé

Traitements des données

N/A
N/A
Protected

Academic year: 2022

Partager "Traitements des données"

Copied!
5
0
0

Texte intégral

(1)

Activité 1ère NSI – Traitements des données 1/5

La méthode splitline() permet de retirer tous les caractères de frontière de la ligne (retour à la ligne par exemple quel que soit le format)

Activité 1 : les villes de France

On trouve énormément de données sur internet sous le format CSV. Une partie de ces données sont publiques. Par exemple le site www.data.gouv.fr récence un grand nombre de données publiques mises à disposition par le gouvernement et consultables par tous les citoyens. Ces données sont librement réutilisables.

Le RGPD (Règlement Général sur la Protection des Données) est un règlement de l'Union européenne entrée en vigueur en France en 2018. Il constitue le texte de référence en matière de protection des données à caractère personnel.

L’objectif de cette activité est de réaliser un module permettant de lire un fichier csv, de récupérer l’ensemble des données sous un dictionnaire et de construire un module permettant d’extraire une donnée à partir d’une référence connue.

Le site sql.sh possède une base de données publiques sur les villes Françaises accessible ici http://sql.sh/736-base- donnees-villes-francaises dont est issue le fichier villes.csv qui vous est fourni.

Cette activité sera réalisée sous Jupyter en suivant le modèle fourni. A l’issu de l’activité, enregistrer les différentes fonctions sous Spyder dans un fichier traitementcsv.py. Ce dernier resservira ensuite pour d’autres activités.

1. Ecrire une fonction recherche_descripteur(nom_fichier) qui renvoie la liste des descripteurs du fichier nom_fichier sous forme d’une liste

2. Ecrire une fonction ajouter_dico(nom_fichier, descripteurs) qui crée une liste de dictionnaires à l’aide des données du fichier sous la forme :

liste = [{descripteur1 :valeur1_1,descripteur2 :valeur2_1…},{descripteur1 :valeur1_2,descripteur2 :valeur2_2…},…]

dico 1 = ligne des données n°1 dico 2 = ligne des données n°2

3. Ecrire une fonction affiche_donnees(liste, descripteur, valeur) qui renvoie la liste des dictionnaires dont le descripteur descripteur possède la valeur valeur dans la liste liste.

Traitements des données

(2)

Activité 1ère NSI – Traitements des données 2/5

4. Structurer un programme qui demande le nom d’un fichier à l’utilisateur, affiche la liste des descripteurs, demande le nom d’un descripteur à l’utilisateur puis une valeur associée à ce descripteur et qui affiche la ligne de donnée correspondant.

Par exemple, le programme donnerait :

ou

Puis :

ou

Enfin :

(3)

Activité 1ère NSI – Traitements des données 3/5

5. Pour les plus rapides.

A partir des données du fichier, tracer le graphique des positions des différentes communes des Yvelines (en longitude/latitude), en tenant compte de la densité de population pour le codage des couleurs. Petit plus : indiquer le nom des communes dont la population est supérieure à 35.000 habitants.

Exemple de réalisation :

(4)

Activité 1ère NSI – Traitements des données 4/5

Activité 2 :

L’objectif de cette activité est de présenter la fonction de tri sorted et ses différentes options.

Cette activité sera réalisée sous Jupyter en suivant le modèle fourni.

Vous utilisez pour cela le fichier europe.csv Prolongements :

A l’issue de l’activité, proposer des fonctions permettant :

✓ D’afficher les données d’un pays sélectionné Exemple de fonctionnement :

✓ D’afficher la liste des pays ayant une population supérieure à une valeur saisie Exemple de fonctionnement :

✓ D’afficher la liste des pays ayant une superficie supérieure à une valeur saisie Exemple de fonctionnement :

(5)

Activité 1ère NSI – Traitements des données 5/5

D'où peuvent provenir les lignes vides dans un fichier CSV ?

Selon votre configuration, il se peut qu'en visualisant le contenu du fichier CSV généré vous constatiez la présence d'une ligne vide après chaque ligne de donnée.

L'explication réside dans le séparateur d'enregistrement. En effet, le séparateur d'enregistrement par défaut est CR+LF (ou "\r\n"). C'est à dire que Python adopte la convention utilisée par quelques anciens OS non-Unix – et Windows – pour les fins de lignes.

Or sous Unix et les systèmes Unix-like (Linux, MacOS X, FreeBSD, ...) seul LF sert à délimiter la fin de ligne. Pour complexifier encore les choses, d'autres OS utilisent à l'inverse uniquement CR, ou le couple complémentaire LF+CR pour signaler la fin de ligne. Face à cette confusion, certains éditeurs de texte sont tentés d'interpréter indépendamment CR puis LF comme deux séparateurs consécutifs de fin de ligne. D'où une mystérieuse ligne vide après chaque enregistrement.

Une bonne nouvelle cependant le reader CSV de Python interprète intelligemment les fins de lignes et accepte sans distinction CR, LF ou CR+LF (mais pas LF+CR) comme délimiteur d'enregistrement.

Zoom sur l’importation de modules personnels

Comme vous l’avez vu dans le cours sur les notions de variables, il est possible d’importer des modules personnalisés développées précédemment.

Vous venez de développer des fonctions de traitements CSV utiles dans de nombreux projets et vous les avez sauvegardées sous le nom traitementcsv.py. Un tel fichier est appelé un module et il va pouvoir être importé dans un autre fichier, et en particulier dans le fichier qui contient votre programme principal.

Rappel : pour utiliser vos fonctions, vous pouvez, au choix ajouter les lignes en début de script : from traitementcsv import recherche_descripteur, ajouter_dico from traitementcsv import *

Remarques :

✓ Dans le premier cas, seules les fonctions recherche_descripteur, ajouter_dico seront utilisables et visibles, dans le second cas, toutes les fonctions le seront.

✓ Dans l’appel au fichier de module, l’extension .py ne doit pas être indiquée… Python se doute bien en effet que vous comptez utiliser un fichier qui contient du code exploitable !

Activité 3 :

L’objectif de cette activité est de réaliser, en utilisant les fonctions développées lors de l’activité 1, un module permettant de recherche les doublons présents dans une table et de tester la cohérence d’une table (données manquantes, données inexploitables.

Cette activité sera réalisée sous Jupyter en suivant le modèle fourni. A l’issu de l’activité, enregistrer les nouvelles fonctions développées sous Spyder dans le traitementcsv.py. Vous vous composez ainsi un module de traitement des données utilisable dans d’autres situations et projets.

Références

Documents relatifs

Remarque : une machine renverse l’ordre quand plus le nombre en entrée est grand, plus le nombre en sortie est petit.. Elle conserve l’ordre quand plus le nombre en entrée est

Les ratios de liquidité évaluent la solvabilité à court terme de l’entreprise et permettent de répondre à la question suivante : votre entreprise dispose-t-elle d’une

Construis une droite (AB) puis trois points C, D et E d'un même côté de (AB)?. Construis le

Ecrire un algorithme Equation qui permet de résoudre les équations de la forme ax+b=0 (en supposant que la valeur de a est différente de 0).. Traduire

Document 7 : L’expression des gènes dans des cellules spécialisées d’une souris

La Terre est régulièrement agitée par des vibrations plus ou moins importantes, les séismes dont les conséquences varient en fonction de la localisation. À partir des

Construire un tableau du nombre de ventilation avant et après 20 flexions puis calculer la moyenne de la classe pour les filles et les garçons. À partir des mesures et du document

Un tirage avec remise consiste à tirer une bille, noter sa couleur, la replacer dans le sac puis répéter cette opération.. Constituer, à l’aide de vos résultats du premier tirage,