Traitement de données en tables
L'essentiel en 30 secondes
Les notions à connaître
- Fichier CSV
- Fichier texte où chaque ligne est un enregistrement et les valeurs sont séparées par un délimiteur (virgule, point-virgule, tabulation…). La première ligne contient souvent les en-têtes (noms des colonnes).
- Table (liste de dictionnaires)
- En Python, une table est représentée par une liste de dictionnaires. Chaque dictionnaire représente une ligne, les clés sont les noms de colonnes, les valeurs sont les données.
- Recherche / Filtrage (sélection)
- Sélectionner les lignes qui vérifient un critère. Se fait par compréhension de liste. Complexité (parcours linéaire). Équivalent du WHERE en SQL.
- Projection
- Sélectionner certaines colonnes uniquement. Ex : [{'nom': l['nom']} for l in table]. Équivalent du SELECT col 1, col 2 en SQL.
- Tri
- Ordonner les lignes selon un critère avec sorted(table, key=...) ou table.sort(key=...). Complexité . Équivalent du ORDER BY en SQL.
- Fusion de tables (jointure)
- Combiner deux tables partageant un attribut commun. Double boucle en . Équivalent du JOIN en SQL.
- Agrégation
- Calculer une valeur synthétique sur une colonne : somme, moyenne, minimum, maximum, comptage. Équivalent de SUM, AVG, MIN, MAX, COUNT en SQL.
- Module csv de Python
- Module standard pour lire et écrire des fichiers CSV. csv.DictReader lit chaque ligne comme un dictionnaire. csv.DictWriter écrit des dictionnaires en CSV.
Les erreurs à éviter en nsi
Comparer des chaînes comme des nombres : '9' > '10' vaut True (ordre lexicographique)
Convertir en int avant de comparer : int(ligne['age']) > 10
Oublier de fermer le fichier CSV après ouverture
Toujours utiliser with open(...) as f: qui ferme automatiquement le fichier
Trier sans key : sorted(table) plante sur une liste de dictionnaires
Toujours spécifier key=lambda l: l['attribut'] pour indiquer le critère de tri
Oublier encoding='utf-8' à l'ouverture d'un CSV avec accents
open('fichier.csv', encoding='utf-8') pour gérer correctement les caractères accentués
Modifier la table pendant un parcours
Créer une nouvelle liste par compréhension plutôt que de modifier en place pendant l'itération
Sais-tu répondre à ces questions ?
Les corrigés détaillés sont dans le quiz du chapitre.
- Quel format de fichier est couramment utilisé pour stocker des données tabulaires en texte brut ?
- Comment représente-t-on classiquement une table de données en Python ?
- Soit table = [{"nom": "Ali", "note": 15}, {"nom": "Bia", "note": 12}]. Qu'affiche print(table[0]["note"]) ?
- Quel code filtre les élèves ayant une note supérieure ou égale à 14 ? table = [{"nom": "Ali", "note": 15}, {"nom": "Bia", "note": 14}, {"nom": "Cam", "note": 18}]
- Quel code trie la table par note croissante ? table = [{"nom": "Ali", "note": 15}, {"nom": "Bia", "note": 12}]
Accède à la fiche complète
Crée ton compte gratuit pour lire la fiche en entier et accéder à 7 000+ contenus de révision.