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, etprint(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.