B - Traiter les données avec Python

Lecture et traitement automatique

Lorsqu'on doit traiter un fichier de données très volumineux, il n'est plus envisageable d'effectuer les opérations à la main. Le langage Python permet alors d'automatiser entièrement la lecture et l'analyse du contenu.

Pour ouvrir un fichier, on utilise la fonction open() en spécifiant le nom du fichier et le mode d'ouverture (généralement "r" pour une lecture). La lecture peut ensuite se faire ligne par ligne, ce qui évite de charger l'intégralité du fichier en mémoire d'un seul coup, une précaution importante pour les gros volumes de données.

Le traitement de chaque ligne est généralement intégré dans une boucle while qui continue tant que de nouvelles lignes sont disponibles. Cette approche permet d'appliquer une même série d'instructions à chaque enregistrement du fichier, sans aucune intervention manuelle.

Représentation des données

En Python, il n'existe pas une façon unique de représenter une table de données importée depuis un fichier. Selon le format d'origine et les besoins du traitement, on pourra opter pour différentes structures : une liste de listes, une liste de dictionnaires, ou encore utiliser des bibliothèques spécialisées comme csv ou pandas.

Cependant, un point commun demeure : lorsqu'on lit des données depuis un fichier texte (CSV, JSON, etc.), les valeurs extraites sont initialement de type str, c'est-à-dire des chaînes de caractères. Or, pour effectuer des opérations mathématiques, des comparaisons numériques ou des calculs statistiques, ces valeurs doivent impérativement être converties.

Il est donc nécessaire d'effectuer une conversion explicite de type :

  • vers int pour les nombres entiers (par exemple un nombre d'habitants) ;

  • vers float pour les nombres décimaux (par exemple une superficie en km²).

Sans cette étape de conversion, une opération comme l'addition de deux nombres produirait une concaténation de texte, et non un résultat arithmétique.

Tri et filtrage

Une fois les données correctement chargées et converties, on peut leur appliquer les mêmes opérations qu'avec un tableur, mais de manière programmée.

  • Tri : pour trier une liste de listes selon les valeurs d'une colonne particulière, on utilise la méthode sort() en lui passant une fonction lambda qui indique la colonne à considérer comme critère. L'argument reverse permet de choisir entre l'ordre croissant (False) et décroissant (True).

    Exemple de tri croissant selon la colonne d'indice i :tableau.sort(key=lambda x: x[i], reverse=False).

  • Filtrage : pour ne conserver que les lignes satisfaisant une condition donnée, on parcourt la table avec une boucle for et on teste chaque ligne à l'aide d'une structure conditionnelle if. Seules les lignes pour lesquelles la condition est vraie sont alors affichées ou conservées dans une nouvelle liste.

    Exemple concret : afficher les communes dont la population dépasse 10 000 habitants.

Exemple de code Python traitant des donnéesInformations[1]