KlarIA
💻 NSI (spécialité)1ereFiche de révision

Traitement de données en tables

📝

Fiche de révision

📝 Fiche de révision — Traitement de données en tables


📋 Vocabulaire

  • Table : enregistrements (lignes) aux mêmes descripteurs (colonnes) ; domaine de valeurs par descripteur.
  • Python : tableau de dictionnaires table[i]["descripteur"] ; len(table) lignes.

📥 Import CSV

  • Ligne 1 = descripteurs, séparateur , ou ; (ou tabulation).
  • À la main : lignes = f.readlines() ; descripteurs = lignes[0].rstrip("\n").split(",") ; pour chaque ligne, dictionnaire {descripteurs[i]: valeurs[i]}.
  • Module : table = list(csv.DictReader(f)).
  • Tout est chaîne après lecture : e["age"] = int(e["age"]) ; sinon "9" > "15" (ordre alphabétique).
  • Cohérence : nombre de valeurs, domaines (note 0-20), doublons (dictionnaire des valeurs vues).

🔍 Recherche

  • Filtre : [e for e in table if e["ville"] == "Lyon"].
  • Logique : and, or, not : if e["ville"] == "Lyon" and e["note"] >= 12.
  • Projection : [e["nom"] for e in table] ; comptage : len([...]) ; maximum par parcours ou max(table, key=...).

🔃 Tri

  • sorted(table, key=lambda e: e["note"]) → nouvelle table croissante ; reverse=True décroissant ; table.sort(key=...) sur place.
  • lambda e: e["nom"] = fonction anonyme qui extrait la clé.
  • Plusieurs colonnes : key=lambda e: (e["ville"], e["note"]) ; tri stable.

🔗 Fusion

  • Descripteur commun de même domaine (« Lyon » ≠ « lyon », "69"69).
  • Double boucle : for e in t1: for v in t2: if e["ville"] == v["ville"]: resultat.append({...}).
  • Lignes sans correspondance : ignorer ou valeur vide.
  • Autres combinaisons : empiler (t1 + t2, sans doublons), ajouter une colonne calculée.

⚠️ Pièges à éviter

PiègeCorrection
Comparer des notes non convertiesint() / float() après lecture
sorted modifie la tablenon : renvoie une copie ; sort modifie
Oublier rstrip("\n")la dernière valeur contient le saut de ligne
Fusion sur des valeurs non normaliséesmême casse, même type
or à la place de andtraduire le critère en logique

📌 À retenir

  1. Tableau de dictionnaires, descripteurs, domaines.
  2. CSV → split ou DictReader → conversion.
  3. Filtre par compréhension avec and/or/not.
  4. sorted(key=lambda …).
  5. Fusion par descripteur commun.

Révise ce chapitre avec KlarIA

Tuteur qui t'explique pas à pas, quiz pour t'entraîner, flashcards pour mémoriser. Gratuit.

Créer mon compte gratuitement