Traitement de données
en tables
Importation CSV, manipulation de listes et analyse de données structurées en Python.
🌍 Le monde des données
Les données ont envahi nos vies (Cloud, smartphones, objets connectés). Pour être utilisables, ces données doivent être structurées. L'une des méthodes les plus simples et universelles pour organiser l'information est la table (lignes et colonnes).
Première utilisation par l'armée américaine pour partager du contenu efficacement.
Edgar F. Codd invente l'organisation en tables (relations) et le langage SQL.
Invention d'un format texte simple pour l'interopérabilité entre systèmes différents.
🛠️ Activités Pratiques
Activité 1 : Le format CSV et l'importation
Le format CSV (Comma Separated Values) est un fichier texte où :
- Chaque ligne du fichier correspond à un enregistrement.
- Les valeurs sont séparées par des virgules (ou des points-virgules).
- La première ligne contient souvent les descripteurs (les noms des colonnes).
Exemple de code Python pour importer :
Nous utilisons la bibliothèque csv pour transformer un fichier texte en une liste de listes exploitable.
import csv
# Ouverture du fichier en mode lecture ('r')
fichier = open('stations.csv', mode='r', encoding='utf-8')
# Création d'une structure de table (liste de listes)
# delimiter=',' précise que le séparateur est la virgule
table = list(csv.reader(fichier, delimiter=','))
print(table[0]) # Affiche les descripteurs (1ère ligne)
print(table[1]) # Affiche la première donnée
Activité 2 : Recherche et Tri
Une fois les données dans une variable table, on peut effectuer des traitements :
- Rechercher : Parcourir la liste pour trouver une information précise (ex: trouver une station de charge près de Perpignan).
- Trier : Classer les données selon un critère (ex: trier les stations par longitude).
🏆 Projets & Challenges
👾 Challenge Interactif : LFI SECOPS
Alerte de sécurité : Une cyberattaque a frappé l'établissement. La base de données de M. Lunetta a été corrompue.
Nous avons besoin de la brigade NSI pour réparer les tables, nettoyer les fichiers CSV et rétablir l'ordre.
Ce jeu interactif (Type Capture The Flag) vous permettra de tester vos connaissances en Python dans un environnement immersif.
⚽ Data Analyst CAN 2026
Le Contexte : Nous sommes à la veille de la finale Maroc vs Sénégal. Votre rédacteur en chef souhaite une prédiction "Data-Driven" plutôt qu'une simple opinion.
Votre mission :
- Collecter les statistiques (Buts, Tirs, Passes...).
- Structurer ces données en Python (CSV ou Listes).
- Coder un algorithme de décision pondéré.
📚 Le Cours à Retenir
1. Structure d'une table en Python
Une table importée depuis un CSV est généralement stockée sous la forme d'une liste de listes.
| Id (Index 0) | Nom (Index 1) | Race (Index 2) |
|---|---|---|
| 1 | Wanita | Tigre |
| 2 | Punk | Loutre |
| 3 | Toko | Toucan |
Si cette table s'appelle animaux :
animaux[0]donne la ligne des descripteurs (si conservée).animaux[1][2]donne "Tigre" (ligne 1, colonne 2).
2. Opérations Fondamentales
A. Sélection (Filtrage)
Cela consiste à extraire les lignes qui répondent à un critère précis (logique booléenne).
# Exemple : Garder uniquement les tigres
tigres = [ligne for ligne in animaux if ligne[2] == 'Tigre']
B. Tri (Sorting)
On utilise la fonction sorted(). Elle ne modifie pas la liste originale mais en renvoie une nouvelle triée.
L'argument key avec une fonction lambda permet de choisir la colonne de tri.
# Trier par nom (colonne index 1)
table_triee = sorted(animaux, key=lambda item: item[1])
C. Fusion de tables
Pour fusionner deux tables, elles doivent partager les mêmes descripteurs. En Python, c'est une simple concaténation de listes.
# Fusionne table1 et table2
fusion = table1 + table2
D. Test de cohérence
Il est crucial de vérifier que les données sont valides (ex: vérifier qu'une colonne "Année" contient bien des entiers et non du texte) pour éviter les erreurs lors du traitement.
🧠 QCM : Vérifiez vos connaissances
Répondez aux questions pour valider le chapitre.