Skip to content

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ètreDescription
sepDélimiteur de colonnes (par défaut ,)
usecolsNe charger que certaines colonnes
index_colDéfinir une colonne comme index
dtypeAppliquer manuellement les types de données
parse_datesAnalyser automatiquement les colonnes de dates
na_valuesPersonnaliser les marqueurs de valeurs manquantes
on_bad_linesIgnorer ou avertir en cas de lignes mal formées
engineChoisir le parseur : "python", "c", "pyarrow"
chunksizeLire de gros fichiers par blocs (streaming)
encodingGé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 :

  • chunksize
  • usecols
  • 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