PYTHON
TRAITER LES DONNEES

Introduction

En informatique, les données se sauvegardent communément dans des fichiers. Parmi les différents formats de fichiers existant, le format CSV est l'un des plus courants.

Lorsque le volume de données à gérer devient important, les données se stockent dans des SGBD (système de gestion de base de données). Un des langage les plus répandu pour interagir avec un SGBD est le SQL.

Expérimenter

Générer un fichier au format CSV

L'exemple de programme ci-dessous permet d'entrer les notes d'un contrôle et d'afficher les données au format CSV. Etudier son fonctionnement et le tester avec trois ou quatre élèves.

print("NOTES DE CONTROLE")

nb=input("Combien y a-t-il d'élèves? ")
nb=int(nb)
csv="Nom,Note\n"

for i in range(0,nb):
  print()
  nom=input("Quel nom porte l'élève? ")
  note=input("Quelle est a note? ")
  csv+=nom+","+note+"\n"

print()
print(csv)

Pour sauvegarder le fichier au format CSV obtenu, ajouter quelques lignes supplémentaires. Ici, le fichier csv.txt est créé s'il n'existe pas. Tester le programme modifié en entrant trois ou quatre élèves, et vérifier le contenu du fichier csv.txt obtenu.

fichier=open("csv.txt", "w")
fichier.write(csv)
fichier.close()

Traiter un fichier au format CSV

Pour la suite, récupérer le fichier : csv.txt

Avant d'entrer dans le vif du sujet, tester les méthodes readlines() et split(), qui retournent toutes les deux une liste. La méthode strip() supprime les caractères non imprimables en début et fin de chaîne.

fichier=open("csv.txt", "r")
lignes=fichier.readlines()
fichier.close()

print(lignes)            # Liste des lignes
print(len(lignes))       # Nombre de lignes

ligne3=lignes[3].split(",")

print(ligne3)            # Liste des données pour la ligne 3
print(ligne3[0])         # Nom pour la ligne 3
print(ligne3[1])         # Note pour la ligne 3
print(ligne3[1].strip()) # Retire le saut de ligne

Le programme ci-dessous ouvre le fichier csv.txt, récupère les données et de calcule la moyenne.

fichier=open("csv.txt", "r")
lignes=fichier.readlines()
fichier.close()

total=0
nb_notes=0

for i in range(1,len(lignes)):
  if lignes[i]!="\n":
    note=lignes[i].split(",")
    total+=float(note[1])
    nb_notes+=1
  
moyenne=total/nb_notes
moyenne=round(moyenne,1)
print("Moyenne : ",moyenne) 

Programmer

Note maximale

En modifiant le programme ci-dessus :

Notes supérieures à 10

En modifiant le programme ci-dessus :

Pour aller plus loin

Afficher des données publiques

Récupérer des données sur le site data.gouv.fr

  1. Se rendre sur le site https://www.data.gouv.fr/fr/.
  2. Chercher et télécharger un jeu de données concernant l’agriculture biologique, plus particulièrement sur l’élevage entre les années 2008 et 2011.
  3. Pour le cas où vous ne trouveriez pas : 972e21c5d6cb4ceb2e18ae3a606b4401185e1bd4c53bc3944b9fc2bbf9e60e.csv
  4. Ouvrir le fichier téléchargé avec l'éditeur de texte Notepad++ pour prendre connaissance de son contenu.

Visualiser les données avec Khartis

  1. Se rendre sur http://www.sciencespo.fr/cartographie/khartis/
  2. Choisir l'utilisation en ligne, puis rechercher le fond de carte France / départements 2016.
  3. Une fois ce fond de carte sélectionné, une zone vide pour copier-coller des données apparaît au bas de la page.
  4. Retournez sur votre éditeur de texte, sélectionner et copier l’ensemble des données. Retourner sur la page web de Khartis pour les coller dans la zone prévue.
  5. Cliquer sur Suivant, puis à nouveau sur Suivant, jusqu’à ce que s’affiche une carte de France (vierge).
  6. Cliquez sur Ajouter une visualisation et sur Symboles proportionnels.
  7. Cliquez sur Choisir une variable puis sur Producteurs Votre carte est (presque) prête !

Un peu de SQL

Plusieurs applications Web permettent d'apprendre à programmer en SQL.

  1. Se rendre sur le site https://fxjollois.github.io/cours-sql/.
  2. Commencer la première activité en cliquant sur le bouton 1 - Requêtage simple   .
  3. Se laisser guider.