Les données structurées

1) Introduction


La première ligne contient les champs les autre lignes correspondent à des enregistrements. La description des données d’un enregistrement se trouve sur la première ligne.

2) Activité bulletins sans python

Nous allons enregistrer une table dans un fichier csv (comma séparated values ou valeurs séparées par des « virgules ») à l’aide d’un éditeur de texte.

Les notes des élèves dans les 5 matières enseignées sont à ajouter

1) Ouvrir un éditeur de texte (Notepad++ par exemple)

2) Saisir les données ci-dessus en ajoutant des notes fictives.

3) Enregistrer le fichier au format csv.

4) Ouvrir le fichier à l’aide d’un tableur (excel ou libre office)

LibreOffice vous proposera des options pour l’ouvrir correctement. Vous pouvez en particulier choisir le séparateur

Sur Excel il faut d’abord ouvrir le tableur puis aller dans l’onglet données

L’attribut alt de cette image est vide, son nom de fichier est image-11.png.

Vous verrez apparaitre l’option à partir d’un fichier csv. Après avoir choisi votre fichier dans vos répertoires vous pourrez choisir votre délimiteur(séparateur) ainsi que d’autres options.

5) Calculer la moyenne générale de chacun des élèves.

3) Activité bulletins avec python

Vous pouvez récupérer le fichier csv et prendre soin de le placer dans le même répertoire que vos programmes python. Sans tenir compte de la première ligne qui contient les champs des colonnes , repérer le numéro qui correspond à votre prénom.

La ligne 38 par exemple à Malefoy. Vous ferez les test avec votre ligne.

Ci-dessous le code python qui permet de lire le fichier csv

import csv

eleves=[]
with open('216.csv',newline='')as csvfile:
          s=csv.DictReader(csvfile,delimiter=';')
          for line in s:
              eleves.append(dict(line))

On peut rechercher le nom se trouvant dans la colonne élève de la ligne 38.Il suffit d’ajouter au programme la ligne :

print(eleves[38]['Élève'])

Vous pouvez aussi saisir dans la console

Vous pouvez aussi demander si un élève est Moldu.et vous ?

Nous allons maintenant générer toutes les notes de façon aléatoire entre 10 et 20

import csv
import random

eleves=[]
with open('216.csv',newline='')as csvfile:
          s=csv.DictReader(csvfile,delimiter=';')
          for line in s:
              eleves.append(dict(line))

matieres=['Potions', 'Botanique','étude des Moldus', 'Sortilèges', 'Vol sur Balai']
notes=[random.randint(10,20) for val in matieres]
for eleve in eleves:
    for i in range(5):
        notes=[random.randint(10,20) for val in matieres]
        eleve[matieres[i]]=notes[i]

Quelle note a obtenu Malefoy en Botanique ? et vous ?

Avec le code ci-dessous vous allez pouvoir enregistrer un bilan comme sur pronote sous forme de diagramme ‘araignée’

import csv
import random
import plotly.graph_objects as go

eleves=[]
with open('216.csv',newline='')as csvfile:
          s=csv.DictReader(csvfile,delimiter=';')
          for line in s:
              eleves.append(dict(line))
              
matieres=['Potions', 'Botanique','étude des Moldus', 'Sortilèges', 'Vol sur Balai']
notes=[random.randint(10,20) for val in matieres]
for eleve in eleves:
    for i in range(5):
        notes=[random.randint(10,20) for val in matieres]
        eleve[matieres[i]]=notes[i]

radar = go.Scatterpolar(r = [eleves[38][val] for val in matieres],theta = matieres,fill = 'toself',\
                        line_color = "cyan", marker = dict( color = "royalblue",symbol = "square",size = 8),opacity=0.5)
data = [radar]
fig = go.Figure(data = data)
fig.update_layout(title_text = eleves[38]['Élève'])
fig.write_image("bilan.png") 

Une image est générée dans votre répertoire de travail

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.