Aller au contenu

Fiche de révision - Traitement de données en tables


  • Table = lignes (enregistrements) + colonnes (attributs)
  • CSV (Comma-Separated Values) = format texte avec séparateur (, ou ;)
  • En Python, une table = tableau de dictionnaires
table = [
{"nom": "Dupont", "age": 16},
{"nom": "Martin", "age": 17}
]

Importer un CSV :

import csv
with open("fichier.csv", "r", encoding="utf-8") as f:
for ligne in csv.DictReader(f):
table.append(dict(ligne))

Exporter un CSV :

with open("sortie.csv", "w", encoding="utf-8", newline="") as f:
ecrivain = csv.DictWriter(f, fieldnames=["nom", "age"])
ecrivain.writeheader()
for ligne in table:
ecrivain.writerow(ligne)

[{"nom": e["nom"]} for e in table]
[e for e in table if e["age"] >= 16] # critère simple
[e for e in table if e["age"] >= 16 and e["ville"] == "Lyon"] # critère combiné
sorted(table, key=lambda e: e["age"]) # croissant
sorted(table, key=lambda e: e["age"], reverse=True) # décroissant

Le tri Python est stable : en cas d'égalité, l'ordre d'origine est conservé.

valeurs = [e["note"] for e in table]
sum(valeurs) min(valeurs) max(valeurs) len(valeurs)

VérificationCe qu'on cherche
Valeurs manquantesChamps vides ou absents
Types incorrects"seize" au lieu de 16
Valeurs aberrantesAge négatif, note > 20
DoublonsLignes identiques ou mêmes clés

Principe : combiner deux tables sur un attribut commun.

def jointure(t1, t2, cle):
resultat = []
for l1 in t1:
for l2 in t2:
if l1[cle] == l2[cle]:
fusion = {}
fusion.update(l1)
fusion.update(l2)
resultat.append(fusion)
return resultat

Clé primaire : attribut identifiant de manière unique chaque ligne.

Clé étrangère : attribut faisant référence à la clé primaire d'une autre table.

Les lignes sans correspondance dans l'autre table sont exclues du résultat.


OpérationEntréeSortiePython
ProjectionTable + colonnesTable réduiteCompréhension de dict
FiltrageTable + conditionTable filtrée[e for e in t if ...]
TriTable + colonneTable ordonnéesorted(t, key=...)
AgrégationTable + colonneUne valeursum(), min(), max()
Jointure2 tables + cléTable fusionnéeDouble boucle + update()

TermeDéfinition rapide
TableDonnées en lignes et colonnes
EnregistrementUne ligne de la table
AttributUne colonne de la table (nom, age, etc.)
CSVFormat texte pour stocker des tables
ProjectionNe garder que certaines colonnes
FiltrageNe garder que certaines lignes
TriOrdonner les lignes selon un attribut
AgrégationCalculer une valeur résumant une colonne
JointureFusion de deux tables sur un attribut commun
Clé primaireIdentifiant unique d'une ligne
Clé étrangèreRéférence vers la clé primaire d'une autre table
DoublonEnregistrement apparaissant plusieurs fois