NSIChapitre 3

Traitement de données en tables

L'essentiel en 30 secondes

Les données tabulaires sont stockées dans des fichiers CSV. En Python, on les lit avec csv.DictReader (chaque ligne → un dictionnaire, valeurs en str). Les opérations fondamentales : recherche/filtrage par compréhension ($O(n)$), projection (sélection de colonnes), tri avec sorted(key=...) ($O(n \\log n)$), fusion/jointure par double boucle ($O(n \\times m)$), et agrégation (sum, len, min, max). Toujours convertir les valeurs CSV en int/float avant les comparaisons numériques.

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é O(n)O(n) (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é O(nlogn)O(n \log n). Équivalent du ORDER BY en SQL.
Fusion de tables (jointure)
Combiner deux tables partageant un attribut commun. Double boucle en O(n×m)O(n \times m). É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

Sais-tu répondre à ces questions ?

Les corrigés détaillés sont dans le quiz du chapitre.

  1. Quel format de fichier est couramment utilisé pour stocker des données tabulaires en texte brut ?
  2. Comment représente-t-on classiquement une table de données en Python ?
  3. Soit table = [{"nom": "Ali", "note": 15}, {"nom": "Bia", "note": 12}]. Qu'affiche print(table[0]["note"]) ?
  4. 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}]
  5. 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.

Les autres chapitres de nsi en 1ère spécialité