Python

Parcourir un fichier CSV en Python : Guide détaillé

Les fichiers CSV (Comma-Separated Values) sont parmi les formats de données les plus courants pour stocker et échanger des données tabulaires. Python propose une bibliothèque standard riche et flexible pour manipuler ces fichiers. Dans cet article, nous allons explorer comment parcourir efficacement un fichier CSV en utilisant Python.

Étape 1 : Importer le module CSV

Pour manipuler un fichier CSV en Python, nous utilisons le module csv de la bibliothèque standard. Il fournit des fonctionnalités pour lire et écrire des fichiers CSV de manière simple et efficace. Voici comment importer le module :

import csv
Étape 2 : Ouvrir le fichier CSV

Avant de pouvoir parcourir le contenu d’un fichier CSV, nous devons l’ouvrir en mode lecture. Python fournit la fonction open() pour cela. Assurez-vous de spécifier le mode d’ouverture comme 'r' (lecture). Voici comment ouvrir un fichier CSV en lecture :

with open('fichier.csv', 'r') as fichier_csv:
    # Code pour la lecture du fichier CSV
    pass  # Placeholder pour le moment

Assurez-vous de remplacer 'fichier.csv' par le chemin relatif ou absolu de votre fichier CSV.

Étape 3 : Lire le fichier CSV avec un lecteur CSV

Une fois que le fichier est ouvert, nous utilisons la méthode reader() du module csv pour créer un objet lecteur CSV. Cet objet nous permet de parcourir les lignes du fichier CSV une par une. Voici comment utiliser reader() :

with open('fichier.csv', 'r') as fichier_csv:
    lecteur_csv = csv.reader(fichier_csv)

    for ligne in lecteur_csv:
        print(ligne)  # Affiche chaque ligne du fichier CSV

Chaque ligne est renvoyée en tant que liste Python, où chaque élément correspond à une colonne dans le fichier CSV.

Étape 4 : Manipuler les données CSV

Une fois que nous avons lu les données CSV dans notre programme Python, nous pouvons les manipuler selon nos besoins. Par exemple, pour accéder à des éléments spécifiques dans chaque ligne, nous utilisons l’indexation des listes. Voici un exemple :

with open('fichier.csv', 'r') as fichier_csv:
    lecteur_csv = csv.reader(fichier_csv)

    for ligne in lecteur_csv:
        print(f"Nom: {ligne[0]}, Âge: {ligne[1]}, Email: {ligne[2]}")

Dans cet exemple, nous supposons que la première colonne contient les noms, la deuxième les âges et la troisième les adresses e-mail.

Étape 5 : Manipuler les données CSV avec des dictionnaires

Parfois, il est utile de traiter les données CSV sous forme de dictionnaires, où les clés sont les en-têtes de colonne. Pour cela, nous utilisons DictReader au lieu de reader. Voici comment cela fonctionne :

with open('fichier.csv', 'r') as fichier_csv:
    lecteur_csv = csv.DictReader(fichier_csv)

    for ligne in lecteur_csv:
        print(f"Nom: {ligne['Nom']}, Âge: {ligne['Âge']}, Email: {ligne['Email']}")

Cette méthode est pratique lorsque le fichier CSV a une première ligne contenant les en-têtes de colonne.

Voici quelques exemples pratiques de parcours de fichiers CSV en Python :

Exemple 1: Analyse des ventes

Supposons que vous ayez un fichier CSV contenant les données des ventes de votre entreprise, avec des colonnes pour la date, le produit vendu et le montant de la vente. Vous pourriez utiliser Python pour lire ce fichier CSV et calculer le total des ventes pour chaque produit.

import csv

ventes_par_produit = {}

with open('ventes.csv', 'r') as fichier_csv:
    lecteur_csv = csv.DictReader(fichier_csv)

    for ligne in lecteur_csv:
        produit = ligne['Produit']
        montant = float(ligne['Montant'])

        if produit in ventes_par_produit:
            ventes_par_produit[produit] += montant
        else:
            ventes_par_produit[produit] = montant

for produit, total_ventes in ventes_par_produit.items():
    print(f"Total des ventes pour {produit}: {total_ventes}")
Exemple 2: Traitement des données d’étudiants

Imaginons un fichier CSV contenant les informations sur les étudiants, telles que leur nom, leur âge et leurs notes dans différentes matières. Vous pourriez utiliser Python pour calculer la moyenne des notes de chaque étudiant.

import csv

notes_par_etudiant = {}

with open('etudiants.csv', 'r') as fichier_csv:
    lecteur_csv = csv.DictReader(fichier_csv)

    for ligne in lecteur_csv:
        etudiant = ligne['Nom']
        note = float(ligne['Note'])

        if etudiant in notes_par_etudiant:
            notes_par_etudiant[etudiant].append(note)
        else:
            notes_par_etudiant[etudiant] = [note]

for etudiant, notes in notes_par_etudiant.items():
    moyenne = sum(notes) / len(notes)
    print(f"Moyenne de {etudiant}: {moyenne}")
Exemple 3: Filtrage des données

Supposons que vous ayez un fichier CSV contenant des informations sur les produits d’une boutique en ligne, y compris leur nom, leur prix et leur disponibilité. Vous pourriez utiliser Python pour filtrer les produits qui sont en stock et dont le prix est inférieur à une certaine valeur.

import csv

produits_en_stock_et_abordables = []

with open('produits.csv', 'r') as fichier_csv:
    lecteur_csv = csv.DictReader(fichier_csv)

    for ligne in lecteur_csv:
        produit = ligne['Nom']
        prix = float(ligne['Prix'])
        en_stock = ligne['En Stock'] == 'Oui'

        if en_stock and prix < 50:
            produits_en_stock_et_abordables.append(produit)

print("Produits en stock et abordables:")
for produit in produits_en_stock_et_abordables:
    print(produit)

Ces exemples illustrent comment vous pouvez utiliser Python pour parcourir efficacement un fichier CSV et effectuer diverses opérations de traitement de données en fonction de vos besoins spécifiques.

Voici quelques cas avancés illustrant des techniques plus avancées pour parcourir et manipuler des fichiers CSV en Python :

Cas avancé 1 : Utilisation de pandas pour l’analyse de données

Pandas est une bibliothèque Python très populaire pour l’analyse de données. Elle fournit des structures de données puissantes, notamment le DataFrame, qui est idéal pour manipuler des données tabulaires telles que celles stockées dans des fichiers CSV. Voici un exemple de lecture d’un fichier CSV et de calcul de statistiques de base à l’aide de pandas :

import pandas as pd

# Lecture du fichier CSV dans un DataFrame
df = pd.read_csv('donnees.csv')

# Affichage des premières lignes du DataFrame
print(df.head())

# Calcul de la moyenne, de la médiane, etc.
moyenne = df['Colonne_numerique'].mean()
mediane = df['Colonne_numerique'].median()
ecart_type = df['Colonne_numerique'].std()

print(f"Moyenne : {moyenne}, Médiane : {mediane}, Écart-type : {ecart_type}")
Cas avancé 2 : Manipulation des données volumineuses avec itérateurs

Lorsque vous travaillez avec de très grands fichiers CSV qui ne rentrent pas en mémoire, vous pouvez utiliser l’itération sur les lignes du fichier plutôt que de charger le fichier entier en mémoire. Cela peut être fait à l’aide de la fonction csv.reader avec un fichier ouvert normalement. Voici comment cela pourrait être fait :

import csv

# Ouvrir le fichier CSV
with open('donnees_volumineuses.csv', 'r') as fichier_csv:
    # Créer un objet lecteur CSV
    lecteur_csv = csv.reader(fichier_csv)

    # Itérer sur les lignes du fichier
    for ligne in lecteur_csv:
        # Traiter chaque ligne individuellement
        print(ligne)

Cela permet de traiter chaque ligne du fichier de manière séquentielle, ce qui est plus efficace en termes de consommation de mémoire.

Cas avancé 3 : Utilisation de la méthode writerows pour écrire dans un fichier CSV

Supposons que vous souhaitez créer un nouveau fichier CSV à partir de données générées ou manipulées dans votre programme Python. Vous pouvez utiliser la méthode writerows pour écrire plusieurs lignes dans le fichier CSV en une seule instruction. Voici un exemple :

import csv

donnees = [
    ['Nom', 'Âge', 'Ville'],
    ['Alice', 30, 'Paris'],
    ['Bob', 25, 'Lyon'],
    ['Charlie', 35, 'Marseille']
]

with open('nouveau_fichier.csv', 'w', newline='') as fichier_csv:
    # Créer un objet écrivain CSV
    ecrivain_csv = csv.writer(fichier_csv)

    # Écrire les lignes dans le fichier CSV
    ecrivain_csv.writerows(donnees)

print("Fichier CSV créé avec succès.")

Dans cet exemple, la méthode writerows écrit toutes les lignes de données contenues dans la liste donnees dans le fichier CSV.

Ces exemples montrent quelques-unes des techniques avancées que vous pouvez utiliser pour manipuler et traiter des fichiers CSV en Python, en fonction de vos besoins spécifiques.

Conclusion

Parcourir un fichier CSV en Python est relativement simple grâce à la bibliothèque standard csv. En suivant les étapes décrites dans cet article, vous pouvez lire efficacement les données tabulaires à partir d’un fichier CSV, les manipuler selon vos besoins et les intégrer dans votre application Python. La manipulation de fichiers CSV est une compétence importante pour tout développeur Python travaillant avec des données tabulaires.

Autres articles

Comment Gérer Efficacement le Budget Mariage avec...
Télécharger un modèle Excel automatisé de budget mariage automatisé avec...
Read more
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

Laisser un commentaire

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