Aller au contenu

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


1. Données tabulées et CSV

  • 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)

Attention

Les valeurs CSV sont des chaînes. Convertir avec int() ou float().


2. Opérations sur les tables

Projection (sélection de colonnes)

[{"nom": e["nom"]} for e in table]

Filtrage (sélection de lignes)

[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é

Tri

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é.

Agrégation

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

3. Qualité des données

Vérification Ce qu'on cherche
Valeurs manquantes Champs vides ou absents
Types incorrects "seize" au lieu de 16
Valeurs aberrantes Age négatif, note > 20
Doublons Lignes identiques ou mêmes clés

4. Fusion de tables (jointure)

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.


5. Schéma récapitulatif des opérations

Opération Entrée Sortie Python
Projection Table + colonnes Table réduite Compréhension de dict
Filtrage Table + condition Table filtrée [e for e in t if ...]
Tri Table + colonne Table ordonnée sorted(t, key=...)
Agrégation Table + colonne Une valeur sum(), min(), max()
Jointure 2 tables + clé Table fusionnée Double boucle + update()

Vocabulaire essentiel

Terme Définition rapide
Table Données en lignes et colonnes
Enregistrement Une ligne de la table
Attribut Une colonne de la table (nom, age, etc.)
CSV Format texte pour stocker des tables
Projection Ne garder que certaines colonnes
Filtrage Ne garder que certaines lignes
Tri Ordonner les lignes selon un attribut
Agrégation Calculer une valeur résumant une colonne
Jointure Fusion de deux tables sur un attribut commun
Clé primaire Identifiant unique d'une ligne
Clé étrangère Référence vers la clé primaire d'une autre table
Doublon Enregistrement apparaissant plusieurs fois