Python

Comment lire un fichier CSV en Python : Un Guide Détaillé

Les fichiers CSV en Python (Comma Separated Values) sont couramment utilisés pour stocker des données tabulaires, telles que des feuilles de calcul ou des bases de données. Python offre de nombreux moyens flexibles et puissants de lire et manipuler des fichiers CSV. Dans cet article, nous explorerons plusieurs méthodes pour lire un fichier CSV en Python, en mettant l’accent sur la bibliothèque standard csv.

Utiliser la bibliothèque csv

La bibliothèque csv de Python fournit des fonctionnalités pour lire et écrire des fichiers CSV de manière simple et efficace. Voici comment lire un fichier CSV à l’aide de cette bibliothèque :

import csv

# Ouvrir le fichier CSV en mode lecture
with open('donnees.csv', newline='') as fichier_csv:
    lecteur_csv = csv.reader(fichier_csv, delimiter=',')
    for ligne in lecteur_csv:
        print(ligne)

Dans cet exemple :

  • open('donnees.csv', newline='') ouvre le fichier CSV spécifié en mode lecture.
  • csv.reader(fichier_csv, delimiter=',') crée un objet lecteur CSV qui parcourt les lignes du fichier CSV, en utilisant la virgule comme délimiteur. Vous pouvez spécifier d’autres délimiteurs selon le format de votre fichier CSV.
  • La boucle for itère à travers chaque ligne du fichier CSV, et print(ligne) affiche chaque ligne sur la console.

Manipulation des données CSV

Une fois les données CSV chargées, vous pouvez les manipuler selon vos besoins. Par exemple, vous pouvez accéder à des colonnes spécifiques, effectuer des calculs ou filtrer les données.

Voici un exemple de lecture d’un fichier CSV et d’affichage des valeurs d’une colonne spécifique :

import csv

# Ouvrir le fichier CSV en mode lecture
with open('donnees.csv', newline='') as fichier_csv:
    lecteur_csv = csv.reader(fichier_csv, delimiter=',')
    # Ignorer l'en-tête s'il existe
    next(lecteur_csv)
    # Parcourir les lignes et afficher la valeur de la deuxième colonne
    for ligne in lecteur_csv:
        print(ligne[1])

Dans cet exemple, ligne[1] accède à la deuxième colonne de chaque ligne du fichier CSV.

Utiliser la bibliothèque pandas

Une autre méthode populaire pour lire des fichiers CSV en Python est d’utiliser la bibliothèque pandas, qui offre des fonctionnalités avancées pour manipuler les données tabulaires.

Voici comment lire un fichier CSV à l’aide de pandas :

import pandas as pd

# Lire le fichier CSV dans un DataFrame pandas
donnees = pd.read_csv('donnees.csv')

# Afficher les premières lignes du DataFrame
print(donnees.head())

pandas.read_csv('donnees.csv') lit le fichier CSV et le stocke dans un objet DataFrame, qui est une structure de données tabulaire très flexible. Vous pouvez ensuite utiliser les méthodes et fonctions de pandas pour effectuer diverses opérations sur les données, telles que le filtrage, le regroupement, ou le calcul de statistiques.

Voici quelques cas particuliers techniques que vous pourriez rencontrer lors de la lecture de fichiers CSV en Python, et comment les aborder :

1. Gestion des délimiteurs non standards

Parfois, les fichiers CSV peuvent utiliser des délimiteurs autres que la virgule standard. Par exemple, le point-virgule (;) ou la tabulation (\t) sont couramment utilisés. Pour lire de tels fichiers, vous devez spécifier explicitement le délimiteur lors de l’utilisation de la bibliothèque csv.

import csv

# Lecture d'un fichier CSV avec un délimiteur point-virgule
with open('donnees.csv', newline='') as fichier_csv:
    lecteur_csv = csv.reader(fichier_csv, delimiter=';')
    for ligne in lecteur_csv:
        print(ligne)
2. Gestion des en-têtes de colonnes

Certains fichiers CSV incluent une ligne d’en-têtes pour décrire le contenu de chaque colonne. Lors de la lecture de tels fichiers, vous pouvez sauter la première ligne pour éviter de la traiter comme des données.

import csv

# Ignorer la première ligne (en-têtes)
with open('donnees.csv', newline='') as fichier_csv:
    lecteur_csv = csv.reader(fichier_csv)
    next(lecteur_csv)  # Ignorer la première ligne
    for ligne in lecteur_csv:
        print(ligne)

Alternativement, si vous utilisez csv.DictReader, les en-têtes seront automatiquement utilisés comme clés de dictionnaire pour chaque ligne.

3. Gestion des caractères spéciaux et des encodages

Certains fichiers CSV peuvent contenir des caractères spéciaux ou être encodés dans un format autre que UTF-8. Vous devrez spécifier l’encodage correct lors de l’ouverture du fichier pour éviter les erreurs de décodage.

import csv

# Spécifier l'encodage lors de l'ouverture du fichier
with open('donnees.csv', newline='', encoding='latin-1') as fichier_csv:
    lecteur_csv = csv.reader(fichier_csv)
    for ligne in lecteur_csv:
        print(ligne)

Assurez-vous de connaître l’encodage correct du fichier CSV que vous lisez. Les encodages courants incluent utf-8, latin-1, ascii, etc.

4. Gestion des valeurs manquantes

Il est courant que les fichiers CSV contiennent des valeurs manquantes. Lors de la lecture de ces fichiers, vous devez décider comment gérer ces valeurs manquantes, en les remplaçant par des valeurs par défaut ou en les ignorant.

import csv

# Ignorer les lignes avec des valeurs manquantes
with open('donnees.csv', newline='') as fichier_csv:
    lecteur_csv = csv.reader(fichier_csv)
    for ligne in lecteur_csv:
        if all(ligne):  # Vérifier si toutes les valeurs sont présentes
            print(ligne)

Dans cet exemple, all(ligne) vérifie si toutes les valeurs dans une ligne sont présentes (non nulles). Vous pouvez ajuster cette condition en fonction de vos besoins pour gérer les valeurs manquantes.

En gérant ces cas particuliers de manière appropriée, vous pouvez lire et traiter efficacement une variété de fichiers CSV en Python.

Conclusion

Lire un fichier CSV en Python est une tâche courante et relativement simple grâce aux bibliothèques standard telles que csv et aux outils puissants comme pandas. En utilisant ces outils, vous pouvez charger rapidement des données CSV dans votre programme Python et les manipuler selon vos besoins, que ce soit pour l’analyse de données, la génération de rapports ou d’autres tâches de traitement de données.

Autres articles

Manipulation des Tableaux en Python avec Numpy
Numpy est une bibliothèque puissante et efficace pour la manipulation...
Read more
Manipulation des Tableaux en Python - Pandas
Python propose plusieurs façons de manipuler des tableaux en Python...
Read more
Expressions Régulières - Regex en Python
Les expressions régulières (ou Regex en Python ) sont un...
Read more

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *