💻sciences

NSI : tout savoir sur le traitement des données en tables

5 août 2026 7 min de lecture

En spécialité NSI, tu vas très vite te retrouver face à des données en tables : des listes de clients, des relevés de températures, des notes d'élèves... Manipuler ces données est une compétence essentielle, que ce soit pour les exercices ou pour le projet final. Dans cet article, on va explorer ensemble ce que sont ces fameuses tables, comment les stocker dans des fichiers CSV, et comment les manipuler efficacement avec Python. Prêt à devenir un as de la donnée ? C'est parti !

Qu'est-ce qu'une table de données ?

Une table de données est une structure qui organise l'information en lignes et en colonnes, un peu comme un tableau Excel. Chaque colonne représente un attribut (ou champ), et chaque ligne est un enregistrement (ou tuple). Par exemple, une table des élèves pourrait avoir les colonnes : nom, prénom, classe, moyenne. Chaque ligne correspond à un élève précis.

En NSI, on modélise souvent une table de deux manières : soit avec une liste de dictionnaires, soit avec une liste de listes. La première est souvent plus lisible car chaque dictionnaire utilise les noms de colonnes comme clés. Par exemple :

eleves = [
    {"nom": "Durand", "prenom": "Alice", "classe": "1G1", "moyenne": 14.5},
    {"nom": "Martin", "prenom": "Lucas", "classe": "1G2", "moyenne": 12.0},
    {"nom": "Petit", "prenom": "Chloé", "classe": "1G1", "moyenne": 16.2}
]

Ici, chaque dictionnaire est une ligne. C'est clair, non ? Maintenant, comment faire pour stocker ces données de façon persistante, par exemple sur un disque dur ? C'est là qu'intervient le format CSV.

Le format CSV : le standard des données tabulaires

Le CSV (Comma-Separated Values) est un format de fichier texte simple qui permet de représenter une table. Chaque ligne du fichier correspond à une ligne de la table, et les valeurs sont séparées par des virgules (ou parfois des points-virgules, selon la région). C'est un format universel, utilisé par Excel, Google Sheets, et bien sûr Python.

Exemple de fichier eleves.csv :

nom,prenom,classe,moyenne
Durand,Alice,1G1,14.5
Martin,Lucas,1G2,12.0
Petit,Chloé,1G1,16.2

La première ligne contient souvent les en-têtes (les noms des colonnes). Les lignes suivantes sont les données. Simple, efficace, et lisible par un humain ! C'est le format idéal pour échanger des données entre programmes.

Pourquoi utiliser le CSV en NSI ?

Le programme de NSI insiste sur la manipulation de fichiers de données, et le CSV est le format de prédilection. Tu en auras besoin pour :

  • Lire des données fournies par l'énoncé (par exemple, une liste de températures).
  • Exporter les résultats de ton programme pour les analyser avec un tableur.
  • Travailler sur des données ouvertes (open data) que tu peux télécharger.

Maîtriser le CSV te donne une compétence très concrète, directement réutilisable dans la vraie vie.

Manipuler les données en tables avec Python

Python propose plusieurs outils pour travailler avec les données en tables. Le plus simple est d'utiliser le module csv de la bibliothèque standard. Pas besoin d'installer quoi que ce soit !

Lire un fichier CSV

Pour lire un fichier CSV, on utilise csv.reader() ou csv.DictReader(). Ce dernier est très pratique car il utilise la première ligne pour créer des dictionnaires. Regarde cet exemple :

import csv

with open('eleves.csv', newline='', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    eleves = list(reader)

print(eleves[0])  # {'nom': 'Durand', 'prenom': 'Alice', 'classe': '1G1', 'moyenne': '14.5'}

Attention : les valeurs sont des chaînes de caractères. Si tu veux faire des calculs, il faudra convertir en entier ou flottant. Par exemple : moyenne = float(eleves[0]['moyenne']).

Écrire dans un fichier CSV

Pour écrire, on utilise csv.writer() ou csv.DictWriter(). Voici comment sauvegarder une liste de dictionnaires :

import csv

nouvelles_donnees = [
    {"nom": "Bernard", "prenom": "Emma", "classe": "TG1", "moyenne": 15.0},
    {"nom": "Robert", "prenom": "Tom", "classe": "TG2", "moyenne": 11.5}
]

with open('nouveaux_eleves.csv', 'w', newline='', encoding='utf-8') as f:
    fieldnames = ['nom', 'prenom', 'classe', 'moyenne']
    writer = csv.DictWriter(f, fieldnames=fieldnames)
    writer.writeheader()
    writer.writerows(nouvelles_donnees)

Et voilà, tu as créé un fichier CSV propre ! Pense toujours à spécifier newline='' pour éviter les problèmes de sauts de ligne sur certaines plateformes.

Filtrer et trier les données

Une fois les données en mémoire, tu peux les manipuler avec Python. Par exemple, pour filtrer les élèves ayant une moyenne supérieure à 13 :

bons_eleves = [e for e in eleves if float(e['moyenne']) > 13]

Ou pour trier par moyenne décroissante :

eleves_tries = sorted(eleves, key=lambda e: float(e['moyenne']), reverse=True)

Ces opérations sont classiques et tombent souvent aux épreuves. Entraîne-toi à les écrire sans hésiter !

Cas d'usage concret : analyse de données météo

Prenons un exemple concret : tu as un fichier CSV contenant les températures maximales de chaque jour d'un mois. Tu veux calculer la température moyenne, la plus haute, et la plus basse.

Voici le fichier meteo.csv :

jour,temp_max
1,12
2,14
3,15
4,13
5,17
...

Le script Python pour analyser ces données :

import csv

with open('meteo.csv', newline='', encoding='utf-8') as f:
    reader = csv.DictReader(f)
    temperatures = [float(row['temp_max']) for row in reader]

moyenne = sum(temperatures) / len(temperatures)
maxi = max(temperatures)
mini = min(temperatures)

print(f"Température moyenne : {moyenne:.2f}°C")
print(f"Température maximale : {maxi}°C")
print(f"Température minimale : {mini}°C")

Ce genre de script est très représentatif de ce que tu pourras faire en NSI. On lit, on transforme, on calcule. C'est le cœur du traitement de données.

Conseils pour réussir en NSI et au bac

Voici quelques conseils pour bien maîtriser cette notion et réussir tes évaluations :

  • Pratique régulièrement : manipule des fichiers CSV avec Python sur des données variées (notes, population, etc.). Plus tu pratiques, plus tu seras à l'aise.
  • Comprends les structures de données : la différence entre liste, dictionnaire, et tuple est cruciale. Savoir quand utiliser l'une ou l'autre est une compétence clé.
  • Relis le cours : n'hésite pas à consulter la section cours NSI pour revoir les bases.
  • Entraîne-toi avec des exercices : la pratique est la clé. Rends-toi sur la page exercices NSI pour t'entraîner avec des problèmes corrigés.
  • Pense aux bases de données : le traitement des tables est lié aux bases de données relationnelles. Pour aller plus loin, découvre le langage SQL.

Si tu as besoin d'aide supplémentaire, des sites comme AlloBac ou AlloLycée proposent des ressources et du soutien.

Conclusion

Le traitement des données en tables est une compétence fondamentale en NSI. Avec le format CSV et Python, tu as maintenant toutes les clés pour lire, écrire, filtrer et analyser des données de manière efficace. N'oublie pas : la pratique est ton meilleur allié. Continue à t'exercer, et tu verras que tout devient plus facile. Bonne chance dans tes études !

📚 Pour aller plus loin

Questions fréquentes

Qu'est-ce qu'une table de données en NSI ?

Une table de données est une structure qui organise l'information en lignes et colonnes. En NSI, on la représente souvent sous forme de liste de dictionnaires en Python. Chaque dictionnaire correspond à une ligne, et les clés sont les noms des colonnes.

Comment lire un fichier CSV en Python ?

On utilise le module csv de Python. Par exemple, avec csv.DictReader, on peut lire le fichier et obtenir chaque ligne sous forme de dictionnaire. Il faut ouvrir le fichier avec open() et préciser l'encodage, souvent 'utf-8'.

Quelle est la différence entre une liste de listes et une liste de dictionnaires pour représenter une table ?

Une liste de listes est plus compacte mais moins lisible car il faut se souvenir de l'ordre des colonnes. Une liste de dictionnaires est plus explicite car chaque valeur est associée à un nom de colonne, ce qui facilite la lecture et la manipulation du code.

Comment filtrer des données dans une table avec Python ?

On peut utiliser une compréhension de liste avec une condition. Par exemple, pour ne garder que les élèves ayant une moyenne supérieure à 13, on écrit : [e for e in eleves if float(e['moyenne']) > 13]. Il faut penser à convertir les chaînes en nombres si nécessaire.

Le format CSV est-il utilisé en dehors du cadre scolaire ?

Oui, le CSV est un format très répandu pour échanger des données entre systèmes. Il est utilisé en entreprise, dans la recherche, et pour l'open data. C'est une compétence professionnelle utile.

Quels sont les pièges à éviter lors de la lecture d'un fichier CSV ?

Il faut faire attention à l'encodage (souvent UTF-8), aux séparateurs (virgule ou point-virgule), et au fait que les valeurs sont lues comme des chaînes de caractères. Il faut aussi gérer les lignes vides et les valeurs manquantes.

Bravo ! Tu as lu cet article
Inscris-toi pour sauvegarder ta progression et gagner des XP
Creer mon compte
données en tables NSIfichiers CSVtraitement de donnéespython CSVbac NSI
Pixel