Traitement de Données

Les données en table

Fichier csv et tableur

Le format CSV (pour comma separated values, soit en français valeurs séparées par des virgules) est un format très utilisé pour représenter des données structurées, notamment pour importer ou exporter des données à partir d’une feuille de calculs d’un tableur. C’est un fichier texte dans lequel chaque ligne correspond à une ligne du tableau

Excel vous proposera des options pour ouvrir correctement le fichier CSV . Vous pouvez en particulier choisir le séparateur , ici la virgules ( , ) :

Dans ce format, chaque ligne représente un enregistrement c’est à dire une structure de données, de types éventuellement différents auxquels on accède grâce à un nom et, sur une même ligne, les différents champs de l’enregistrement sont réparés par une virgule (d’où le nom).

Import d’un fichier csv

La bibliothèque CSV implémente des classes pour lire des données tabulaires au format CSV

La fonction READER() du module csv renvoie un objet de type CSV.READER qui est itérable. Chaque élément de cet objet est une liste.

La fonction DictReader du module csv renvoie un objet de type csv.DictReader itérable aussi. Chaque élément de cet objet est un dictionnaire ordonné : c’est un dictionnaire qui mémorise l’ordre d’insertion des clés. Les éléments de la première ligne du fichier csv (appelés noms de champ ou descripteur) se retrouvent être les clés de ce dictionnaire.

La commande with open(...) as ...

Il existe en Python une commande qui permet d’ouvrir un fichier csv sans obligation de le fermer à la fin de l’exécution la commande gère la fermeture).

En python en enregistrement peut-être représenté par un dictionnaire: 

{'Prénom':'Romane','Née':'25/11/2005','Classe':'1G1','Lycée':'Mauriac'}

Et un fichier csv par une liste de dictionnaires, dont les clés sont les noms des colonnes:

 

[{'Nom':'Baron','Prénom':'Paul','NSI':'18','Physique':'16','Maths':'15'}, {'Nom':'Taillant','Prénom':'Greg','NSI':'1','Physique':'3','Maths':'5'}, [{'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Romane,25/11/2005,1G1,Mauriac,, ,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Giovanny,20/02/2004,1G10,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Carla,14/01/2005,1G10,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Tom,15/08/2005,1G10,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Olga,05/05/2005,1G10,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Romain,29/04/2005,1G11,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Raphaëlle,20/04/2005,1G2,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Lisa,29/11/2005,1G4,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Matthieu,15/07/2005,1G7,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Zakaria,06/10/2005,1G7,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Lukas,07/07/2005,1G7,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Maxence,24/10/2005,1G7,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Kélya,30/03/2005,1G9,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Anna,28/10/2005,1G9,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Jean-Lou,12/01/2005,1G9,Mauriac,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Harry Potter,29/11/2005,1G1,Poudlard,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Hermione,20/04/2005,1G1,Poudlard,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Ronald,07/07/2005,1G2,Poudlard,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Weasley,15/08/2005,1G7,Poudlard,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Neville,14/01/2005,1G7,Poudlard,,,,,'}, {'Élève,Né[e]le,Classe,Lycée,Potions,Botanique,étude des Moldus,Sortilèges,Vol sur Balai': 'Malefoy,30/03/2005,1G1,Poudlard,,,,,'}]{'Nom':'Gourdy','Prénom':'Zoé','NSI':'14','Physique':'13','Maths':'16'}]

https://colab.research.google.com/drive/1ca90R_tBdOrwjjJcEFaheJQTH4CjLkis?usp=sharing

import plotly.graph_objects as go
radar = go.Scatterpolar(r = [eleves[15][val] for val in matières],theta = matières,fill = 'toself')
data = [radar]
fig = go.Figure(data = data)
fig.update_layout(title_text = eleves[15]['Élève'])
fig.show()

Ce dernier Scripte va permettre d’afficher les notes sur un diagramme Camembert .

Aucune réponse

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *