Tutoriel Pandas read_csv() : Importer des fichiers CSV comme un pro
Updated on
La fonction pandas.read_csv() est l’un des outils les plus utilisés en analyse de données. Que vous importiez de petits jeux de données ou des fichiers de plusieurs Go, comprendre le fonctionnement de read_csv() — et comment l’optimiser — vous fera gagner du temps, de la mémoire et des efforts de débogage.
Ce guide mis à jour pour 2025 couvre tout ce dont vous avez besoin pour charger des fichiers CSV proprement, rapidement et correctement, y compris les bonnes pratiques pour Pandas 2.0, le moteur PyArrow, la gestion des encodages, l’analyse des dates et la résolution des erreurs courantes.
⚡ Vous voulez des graphiques instantanés à partir de votre DataFrame ?
PyGWalker transforme votre DataFrame Pandas/Polars en une interface visuelle interactive — directement dans Jupyter Notebook.
Glissez-déposez les colonnes → générez des graphiques instantanément → explorez vos données visuellement.
Essayez-le en une ligne :
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)| Run in Kaggle (opens in a new tab) | Run in Google Colab (opens in a new tab) | ⭐️ Star PyGWalker (opens in a new tab) |
|---|
Qu’est-ce que pandas.read_csv() ?
read_csv() est la méthode principale pour importer des fichiers CSV dans un DataFrame, la structure de données centrale de pandas. Elle prend en charge :
- les délimiteurs personnalisés
- la gestion des valeurs manquantes
- l’inférence de type ou le contrôle manuel des types
- l’analyse des dates
- le traitement de gros fichiers en streaming
- plusieurs moteurs de parsing (Python, C, PyArrow)
- la création d’index à la volée
- une sélection efficace de colonnes
Pandas 2.0 a introduit PyArrow comme backend plus rapide et plus économe en mémoire, rendant le chargement CSV encore plus puissant.
Utilisation de base
import pandas as pd
df = pd.read_csv("your_file.csv")
df.head()Simple — mais dans les projets réels, les CSV sont rarement propres. Voyons maintenant les paramètres les plus utiles.
Paramètres courants de read_csv() (référence rapide)
| Paramètre | Description |
|---|---|
sep | Délimiteur de colonnes (par défaut ,) |
usecols | Ne charger que certaines colonnes |
index_col | Définir une colonne comme index |
dtype | Appliquer manuellement les types de données |
parse_dates | Analyser automatiquement les colonnes de dates |
na_values | Personnaliser les marqueurs de valeurs manquantes |
on_bad_lines | Ignorer ou avertir en cas de lignes mal formées |
engine | Choisir le parseur : "python", "c", "pyarrow" |
chunksize | Lire de gros fichiers par blocs (streaming) |
encoding | Gérer les encodages (utf-8, latin-1) |
1. Définir une colonne comme index
Option A — après le chargement :
df = df.set_index("id")Option B — pendant le chargement :
df = pd.read_csv("file.csv", index_col="id")2. Lire uniquement certaines colonnes
Accélère le chargement et réduit l’usage mémoire :
df = pd.read_csv("file.csv", usecols=["name", "age", "score"])3. Gérer les valeurs manquantes
df = pd.read_csv("file.csv", na_values=["NA", "-", ""])4. Analyser automatiquement les dates
df = pd.read_csv("sales.csv", parse_dates=["date"])Pandas déduira automatiquement le bon format datetime.
5. Corriger les erreurs d’encodage (très fréquent !)
df = pd.read_csv("file.csv", encoding="utf-8", errors="ignore")Si UTF-8 échoue :
df = pd.read_csv("file.csv", encoding="latin-1")6. Utiliser le moteur PyArrow (Pandas 2.0+)
Pour un parsing plus rapide et une meilleure efficacité mémoire :
df = pd.read_csv("file.csv", engine="pyarrow")À combiner avec les nouveaux dtypes basés sur Arrow :
df = pd.read_csv(
"file.csv",
engine="pyarrow",
dtype_backend="pyarrow"
)7. Lire de gros CSV (1 Go–100 Go)
Utilisez le découpage en blocs :
reader = pd.read_csv("big.csv", chunksize=100_000)
for chunk in reader:
process(chunk)Ou ne charger que les colonnes et types nécessaires :
df = pd.read_csv(
"big.csv",
usecols=["user_id", "timestamp"],
dtype={"user_id": "int32"},
)8. Erreurs courantes et comment les corriger
❌ UnicodeDecodeError
Utilisez :
encoding="latin-1"❌ ParserError: Error tokenizing data
Le fichier contient des lignes mal formées :
pd.read_csv("file.csv", on_bad_lines="skip")❌ MemoryError avec de gros fichiers
Utilisez :
chunksizeusecols- le backend Arrow (
dtype_backend="pyarrow")
❌ Mauvais délimiteur
pd.read_csv("file.csv", sep=";")Exemple pratique : importation propre
df = pd.read_csv(
"sales.csv",
sep=",",
parse_dates=["date"],
dtype={"amount": "float64"},
na_values=["NA", ""],
engine="pyarrow"
)Quand utiliser CSV — et quand l’éviter
Le CSV est idéal pour :
- la portabilité
- les pipelines simples
- les jeux de données petits à moyens
Mais évitez le CSV lorsque vous avez besoin de :
- vitesse
- compression
- cohérence de schéma
- types complexes
Préférez Parquet pour l’analytique à grande échelle.
FAQ
Comment détecter automatiquement les délimiteurs ?
pd.read_csv("file.csv", sep=None, engine="python")Comment ignorer des lignes d’en-tête ?
pd.read_csv("file.csv", skiprows=3)Comment charger un CSV compressé en zip ?
pd.read_csv("file.csv.zip")Conclusion
pandas.read_csv() est un outil puissant et flexible qui peut gérer quasiment tous les scénarios d’import de CSV — des fichiers simples aux jeux de données de plusieurs Go.
En comprenant les paramètres les plus utiles, en utilisant PyArrow dans Pandas 2.0+ et en appliquant les bonnes pratiques (sélection de colonnes, analyse de dates, gestion des erreurs), vous améliorerez considérablement votre flux de chargement de données.
Plus de tutoriels Pandas