Python

Tutoriel Python : Importation, Lecture et Modification de Fichiers CSV

Dans ce tutoriel, nous allons explorer comment importer, lire et modifier des fichiers CSV en utilisant Python. Les fichiers CSV (Comma-Separated Values) sont couramment utilisés pour stocker des données tabulaires, et Python offre des bibliothèques puissantes pour travailler avec ces fichiers.

Importation de la bibliothèque CSV

La première étape consiste à importer la bibliothèque CSV de Python. Cette bibliothèque nous fournit des fonctionnalités pour lire et écrire des fichiers CSV.

import csv
Lecture d’un fichier CSV

Pour lire un fichier CSV, nous utiliserons la fonction reader() de la bibliothèque CSV. Cette fonction parcourt chaque ligne du fichier CSV et renvoie un objet itérable que nous pouvons parcourir pour accéder aux données.

Supposons que nous avons un fichier CSV appelé donnees.csv avec les données suivantes :

nom,prenom,age
Alice,Jones,30
Bob,Smith,25
Charlie,Brown,35

Voici comment lire ce fichier CSV en Python :

with open('donnees.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.reader(csvfile)
    for ligne in lecteur_csv:
        print(ligne)

Cela affichera chaque ligne du fichier CSV sous forme de liste.

Modification d’un fichier CSV

Pour modifier un fichier CSV, nous pouvons lire les données, effectuer les modifications nécessaires, puis écrire à nouveau les données dans un nouveau fichier CSV ou écraser le fichier existant.

Supposons que nous voulons ajouter une nouvelle colonne “ville” à notre fichier CSV. Voici comment nous pouvons le faire :

with open('donnees.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.reader(csvfile)
    donnees = list(lecteur_csv)

# Ajout de la colonne "ville"
for ligne in donnees:
    if ligne[0] == 'nom':
        ligne.append('ville')
    else:
        ligne.append('')

# Écriture des données modifiées dans un nouveau fichier CSV
with open('donnees_modifiees.csv', 'w', newline='') as csvfile:
    ecrivain_csv = csv.writer(csvfile)
    for ligne in donnees:
        ecrivain_csv.writerow(ligne)

Dans cet exemple, nous avons ajouté une colonne vide “ville” à chaque ligne, sauf à la première ligne qui contient les en-têtes. Ensuite, nous avons écrit ces données modifiées dans un nouveau fichier CSV appelé donnees_modifiees.csv.

Voici quelques exemples de manipulations courantes que vous pouvez effectuer sur des fichiers CSV en utilisant Python :

Filtrer les données

Supposons que vous ayez un fichier CSV contenant des données sur les employés, et vous voulez filtrer les employés âgés de moins de 30 ans :

import csv

with open('employes.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.reader(csvfile)
    for ligne in lecteur_csv:
        if int(ligne[2]) < 30:  # Vérifie l'âge (supposé être à l'index 2)
            print(ligne)
Calculer des statistiques

Supposons que vous ayez un fichier CSV contenant des données de ventes, et vous voulez calculer le total des ventes :

import csv

total_ventes = 0

with open('ventes.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.reader(csvfile)
    for ligne in lecteur_csv:
        total_ventes += float(ligne[1])  # Supposons que le montant des ventes est à l'index 1

print("Total des ventes :", total_ventes)
Créer un nouveau fichier CSV avec des données filtrées

Supposons que vous ayez un fichier CSV contenant des données de produits, et vous voulez créer un nouveau fichier CSV avec uniquement les produits dont le prix est inférieur à 50 € :

import csv

with open('produits.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.reader(csvfile)
    donnees_filtrees = [ligne for ligne in lecteur_csv if float(ligne[2]) < 50]  # Supposons que le prix soit à l'index 2

with open('produits_filtres.csv', 'w', newline='') as csvfile:
    ecrivain_csv = csv.writer(csvfile)
    for ligne in donnees_filtrees:
        ecrivain_csv.writerow(ligne)
Modifier des données dans un fichier CSV

Supposons que vous vouliez augmenter le salaire de tous les employés de 10 % dans un fichier CSV contenant leurs informations :

import csv

with open('employes.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.reader(csvfile)
    donnees_modifiees = []
    for ligne in lecteur_csv:
        ligne[3] = str(float(ligne[3]) * 1.10)  # Supposons que le salaire soit à l'index 3
        donnees_modifiees.append(ligne)

with open('employes_modifies.csv', 'w', newline='') as csvfile:
    ecrivain_csv = csv.writer(csvfile)
    for ligne in donnees_modifiees:
        ecrivain_csv.writerow(ligne)

Ces exemples vous donnent un aperçu de différentes manipulations que vous pouvez effectuer sur des fichiers CSV en utilisant Python. Avec la bibliothèque CSV et les fonctionnalités de manipulation de listes et de chaînes de caractères de Python, vous pouvez réaliser une grande variété de tâches liées à l’analyse et à la manipulation de données tabulaires.

Voici quelques exemples avancés avec du code pour la manipulation de fichiers CSV en Python :

1. Utilisation de la bibliothèque pandas

La bibliothèque pandas est une bibliothèque très puissante pour la manipulation et l’analyse de données en Python, y compris les fichiers CSV. Voici comment vous pouvez utiliser pandas pour lire un fichier CSV et effectuer des opérations avancées :

import pandas as pd

# Lire le fichier CSV
donnees = pd.read_csv('donnees.csv')

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

# Filtrer les données pour les personnes de moins de 30 ans
personnes_moins_de_30 = donnees[donnees['age'] < 30]

# Afficher les résultats
print(personnes_moins_de_30)
2. Utilisation de la bibliothèque csv.DictReader

La classe DictReader de la bibliothèque csv permet de lire les données CSV en les interprétant comme des dictionnaires. Cela facilite l’accès aux données par nom de colonne :

import csv

# Lire le fichier CSV en tant que dictionnaires
with open('donnees.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.DictReader(csvfile)
    for ligne in lecteur_csv:
        print(ligne['nom'], ligne['prenom'], ligne['age'])
3. Utilisation de la bibliothèque csv.DictWriter

La classe DictWriter de la bibliothèque csv permet d’écrire des données dans un fichier CSV à partir de dictionnaires :

import csv

# Créer une liste de dictionnaires représentant de nouvelles données
nouvelles_donnees = [
    {'nom': 'Doe', 'prenom': 'John', 'age': '25'},
    {'nom': 'Smith', 'prenom': 'Emma', 'age': '35'}
]

# Écrire les données dans un nouveau fichier CSV
with open('nouvelles_donnees.csv', 'w', newline='') as csvfile:
    colonnes = ['nom', 'prenom', 'age']
    ecrivain_csv = csv.DictWriter(csvfile, fieldnames=colonnes)
    ecrivain_csv.writeheader()
    for ligne in nouvelles_donnees:
        ecrivain_csv.writerow(ligne)

Ces exemples démontrent quelques-unes des fonctionnalités avancées que vous pouvez utiliser pour manipuler des fichiers CSV en Python, en utilisant les bibliothèques pandas et csv. Avec ces outils, vous pouvez effectuer une grande variété d’opérations de manipulation de données, y compris la lecture, la filtration, la modification et l’écriture de fichiers CSV.

Voici quelques cas particuliers de manipulation de fichiers CSV en Python :

1. Traitement de fichiers CSV avec des délimiteurs personnalisés

Parfois, les fichiers CSV utilisent des délimiteurs autres que des virgules, comme des points-virgules (;) ou des tabulations (\t). Vous pouvez spécifier le délimiteur lors de la lecture ou de l’écriture du fichier CSV en utilisant le paramètre delimiter :

import csv

# Lecture d'un fichier CSV avec un délimiteur point-virgule
with open('donnees.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.reader(csvfile, delimiter=';')
    for ligne in lecteur_csv:
        print(ligne)
2. Gestion des valeurs manquantes ou nulles

Certains fichiers CSV peuvent contenir des valeurs manquantes ou nulles. Vous pouvez les gérer lors de la lecture en utilisant des instructions conditionnelles pour remplacer ces valeurs par des valeurs par défaut ou des valeurs calculées :

import csv

# Lecture d'un fichier CSV avec des valeurs manquantes
with open('donnees.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.reader(csvfile)
    for ligne in lecteur_csv:
        # Remplacer les valeurs manquantes par "N/A"
        ligne = ['N/A' if valeur.strip() == '' else valeur for valeur in ligne]
        print(ligne)
3. Ignorer les lignes d’en-tête ou les premières lignes

Dans certains cas, les fichiers CSV peuvent contenir des lignes d’en-tête ou des métadonnées que vous souhaitez ignorer lors de la lecture. Vous pouvez utiliser une boucle pour lire les lignes sans les traiter :

import csv

# Lecture d'un fichier CSV en ignorant les 2 premières lignes
with open('donnees.csv', 'r', newline='') as csvfile:
    lecteur_csv = csv.reader(csvfile)
    for _ in range(2):
        next(lecteur_csv)  # Ignorer la ligne
    for ligne in lecteur_csv:
        print(ligne)
4. Gestion des fichiers CSV encodés avec des caractères spéciaux

Si votre fichier CSV est encodé avec des caractères spéciaux, vous pouvez spécifier l’encodage lors de la lecture ou de l’écriture du fichier CSV en utilisant le paramètre encoding :

import csv

# Lecture d'un fichier CSV encodé en latin-1
with open('donnees.csv', 'r', newline='', encoding='latin-1') as csvfile:
    lecteur_csv = csv.reader(csvfile)
    for ligne in lecteur_csv:
        print(ligne)

Ces cas particuliers couvrent quelques-unes des situations que vous pourriez rencontrer lors de la manipulation de fichiers CSV en Python et comment les gérer efficacement.

Conclusion

Dans ce tutoriel, nous avons appris à importer, lire et modifier des fichiers CSV en utilisant Python. La bibliothèque CSV de Python offre une manière simple et efficace de travailler avec des données tabulaires stockées dans des fichiers CSV. Vous pouvez maintenant explorer davantage ces fonctionnalités pour répondre à vos besoins spécifiques en matière de manipulation de données CSV en Python.

Autres articles

Maîtriser l'utilisation de la méthode join en...
La méthode join en Python est un outil puissant pour...
Read more
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

Laisser un commentaire

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