Exemple d'utilisation
Données en table & Fichiers CSV
Un chapitre Excel-lent !

Le format CSV est fréquemment utilisé pour échanger des données traitées à l'aide de tableurs ou de logiciels de traitement de bases de données. Ici, notre objectif sera d'apprendre à importer et exporter des données dans Python à l'aide du format CSV.
Sommaire
| Chapitre | Description |
|---|---|
| Cours principal | Fichiers CSV, enregistrements, import/export |
| Manipulation de tables | Recherche, filtrage et tri de données |
| Fusion de tables | Jointure et fusion de données |
| Introduction à Pandas | Utilisation de la bibliothèque Pandas |
| Exercices | Exercices d'application |
En informatique, il est courant de traiter d'importantes quantités d'informations, c'est d'ailleurs le modèle économique de bon nombre de sites et services que vous utilisez quotidiennement : réseaux sociaux, magasins en ligne, cabinets d'analyses...
Contenu: Définition d'un fichier CSV, de données en table, recherche dans une table, fonction de tri
Compétences: Savoir exporter et importer des données dans un programme Python depuis un fichier CSV
Le programme

Apport de connaissances
Les données en table sont une composante essentielle de l'informatique : de très nombreuses entreprises utilisent des tableurs afin de traiter un gros volume de données.
En maîtrisant cet aspect, nous pourrons commencer à utiliser de petites bases de données pour nos activités, mais également travailler sur des projets plus intéressants. --------------- ### Enregistrements Un **enregistrement** est une structure de données (différentes ou non) auxquelles on accède grâce à un nom. On peut donc représenter les notes d'une élève dans différentes disciplines à l'aide d'un **enregistrement**
À quelle structure de données python cela vous fait-il penser ? ✏ *Les clés sont parfois appelées champs ou attributs quand on parle de base de données* ✏ ----------- ### Fichiers CSV Le format CSV (***Comma Separated Value***) est employé poour importer / exporter des données depuis ou vers un tableur. C'est une sorte de fichier texte dans lequel chaque ligne correspond à une ligne du tableau. Comme son nom l'indique, on sépare les colonnes (et donc les valeurs) par une **virgule**, ou par un **point-virgule**. Il permet donc de représenter une liste d'enregistrement ayant les même **champs**. → Exemple de feuille de calcul| Prénom | DS1 | DS2 | Projet | | ------------ | ---- | ---- | ------ | | Michelangelo | 12 | 14 | B | | Leonardo | 15 | 16 | A | | Raphael | 10 | 12 | C | | Donatello | 13 | 15 | B | On peut donc représenter ce tableau sous forme d'un fichier "notes.csv" :
Prenom; DS1; DS2; Projet
Michelangelo; 12; 14; B
Leonardo; 15; 16; A
Raphael; 10; 12; C
Donatello; 13; 15; B
Notes = [{'Prénom' : 'Michelangelo', 'DS1' : '12', 'DS2' : '14', 'Projet' : 'B'},
{'Prénom' : 'Leonardo', 'DS1' : '15', 'DS2' : '16', 'Projet' : 'A'},
{'Prénom' : 'Raphael', 'DS1' : '10', 'DS2' : '12', 'Projet' : 'C'},
{'Prénom' : 'Donatello', 'DS1' : '13', 'DS2' : '15', 'Projet' : 'B'}]
import csv
def import_csv(fichier):
lecteur = csv.DictReader(open(fichier + '.csv', 'r'))
return [dict(ligne) for ligne in lecteur ]
[{'Prénom' : 'Michelangelo', 'DS1' : '12', 'DS2' : '14', 'Projet' : 'B'},
{'Prénom' : 'Leonardo', 'DS1' : '15', 'DS2' : '16', 'Projet' : 'A'},
{'Prénom' : 'Raphael', 'DS1' : '10', 'DS2' : '12', 'Projet' : 'C'},
{'Prénom' : 'Donatello', 'DS1' : '13', 'DS2' : '15', 'Projet' : 'B'}]
import csv
def import_csv2():
resultat = []
with open('notes.csv',newline = '') as csvfile:
s = csv.reader(csvfile,delimiter = ';')
for i in s:
resultat.append(i)
return resultat
resultat = [['Prenom', 'DS1', 'DS2', 'Projet'], ['Michelangelo', '12', '14', 'B'],
['Leonardo', '15','16', 'A'], ['Raphael', '10', '12', 'C'], ['Donatello' '13', '15', 'B']]
def vers_csv(table, nom_fichier, ordre):
with open(nom_fichier + '.csv', 'w') as fic:
dic = csv.DictWriter(fic, fieldnames = ordre)
dic.writeheader() # première ligne, celle des attributs
for ligne in table:
dic.writerow(ligne) # ajoute les lignes de la table
return None
# Exemple d'utilisation
Notes = [{'Prénom': 'Michelangelo', 'DS1': '12', 'DS2': '14', 'Projet': 'B'}]
vers_csv(Notes, 'notes', ['Prénom', 'DS1', 'DS2', 'Projet'])
Ce cours est mis à disposition selon les termes de la Licence Creative Commons Attribution - Pas d’Utilisation Commerciale - Partage dans les Mêmes Conditions 4.0 International.