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
intpour les nombres entiers (par exemple un nombre d'habitants) ;vers
floatpour 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 fonctionlambdaqui indique la colonne à considérer comme critère. L'argumentreversepermet 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
foret on teste chaque ligne à l'aide d'une structure conditionnelleif. 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.
