Traitement de données en tables
Ce domaine étudie les tables de données, souvent au format CSV, et les opérations de lecture, filtrage, tri, agrégation et jointure. L'examen vérifie la capacité à choisir une représentation en liste de listes ou en liste de dictionnaires, à convertir les types et à traiter les cas imparfaits : en-tête, séparateur, valeurs manquantes et doublons.
Règles et concepts
- Un fichier CSV contient des lignes et des colonnes ; la première ligne est souvent un en-tête. Le séparateur peut être une virgule, un point-virgule ou une tabulation.
- Les champs lus dans un fichier sont des chaînes. Il faut convertir avec int ou float avant un calcul numérique.
- Une table peut être représentée par une liste de listes, où chaque ligne est une liste, ou par une liste de dictionnaires, où chaque dictionnaire associe un nom de colonne à une valeur.
- Filtrer consiste à garder les lignes qui vérifient une condition ; trier consiste à ordonner selon une clé ; agréger consiste à calculer une somme, une moyenne, un minimum ou un maximum.
- Une jointure rapproche deux tables par une clé commune. Il faut vérifier l'unicité et le type des clés, sinon des lignes sont perdues ou dupliquées.
Exemple travaillé
Soit lignes = [{'nom': 'Ada', 'note': '18'}, {'nom': 'Bob', 'note': '7'}]. Pour calculer la moyenne des notes supérieures ou égales à 10, on convertit d'abord chaque note avec int(ligne['note']), puis on filtre. Ici, 18 est retenu, 7 est écarté ; la moyenne des notes retenues vaut 18.0. Si l'on oublie la conversion, la comparaison '18' >= 10 provoque une erreur de type en Python 3.
Pièges fréquents
Comparer des chaînes comme des nombres ; oublier l'en-tête ; supposer que la virgule est toujours le séparateur ; ne pas gérer les guillemets autour d'un champ contenant le séparateur ; ignorer les valeurs vides ; joindre sur des clés de types différents, par exemple '12' et 12 ; compter les doublons sans le préciser.
À retenir
- CSV : lignes, colonnes, en-tête et séparateur.
- Les champs lus sont des chaînes à convertir.
- Liste de listes ou liste de dictionnaires sont deux représentations valides.
- Filtrer, trier, agréger et joindre sont les opérations centrales.
- Une jointure exige une clé commune de type cohérent.