📍 Guide principal de la série : Excel pour PME : tableaux structurés, fonctions dynamiques, Copilot et Python.
Excel devient lent au-delà de 100 000 lignes. Power Query gère 1 à 2 millions de lignes mais peine sur les transformations complexes. À ce stade, basculer sur Python avec la bibliothèque pandas devient rentable. Pandas lit les Excel et CSV directement, manipule des dizaines de millions de lignes en mémoire, et permet d’enchaîner des transformations reproductibles. Ce tutoriel installe l’environnement, ouvre un fichier Excel, applique les opérations équivalentes aux fonctions Excel courantes, et sauvegarde le résultat.
Prérequis
- Python 3.9 ou plus récent (Python 3.11/3.12 recommandés)
- Pas de connaissance Python préalable indispensable, mais utile
- Un fichier Excel ou CSV à traiter
- Temps : 75 minutes
Étape 1 — Installer Python et les bibliothèques
Sur Windows, télécharger l’installeur officiel sur python.org, version 3.12 par exemple. Cocher Add Python to PATH avant de cliquer Install. Sur Mac, Python 3 est généralement préinstallé ; sinon utiliser Homebrew (brew install python). Sur Linux Ubuntu/Debian, sudo apt install python3 python3-pip.
Vérifier l’installation en ouvrant un terminal (Invite de commandes sur Windows, Terminal sur Mac/Linux) :
python --version
Doit afficher quelque chose comme Python 3.12.1. Si la commande n’est pas reconnue, vérifier la case PATH ou redémarrer le terminal.
Installer pandas et openpyxl (nécessaire pour lire les .xlsx) :
pip install pandas openpyxl
L’installation dure 1 à 2 minutes. À la fin, message Successfully installed pandas-2.x.x openpyxl-3.x.x. Si pip n’est pas reconnu, utiliser python -m pip install pandas openpyxl.
Étape 2 — Écrire son premier script
Créer un dossier excel-pandas sur le bureau. Y placer un fichier Excel à analyser, par exemple ventes.xlsx avec les colonnes Date, Région, Produit, Quantité, Montant. Toujours dans ce dossier, créer un fichier texte analyse.py avec un éditeur (Notepad, VS Code, Sublime Text).
Première version minimale :
import pandas as pd
df = pd.read_excel("ventes.xlsx")
print(df.head())
print(df.shape)
La première ligne charge la bibliothèque pandas et lui donne l’alias court pd. La deuxième ouvre le fichier Excel et stocke son contenu dans une variable nommée df (DataFrame, l’objet pandas qui ressemble à un tableau Excel). df.head() affiche les 5 premières lignes. df.shape affiche le nombre de lignes et colonnes.
Exécuter dans le terminal, depuis le dossier excel-pandas :
python analyse.py
Le terminal affiche un aperçu du fichier et sa taille. Si le fichier ne s’ouvre pas, vérifier le chemin et l’extension. Pour un .xls (ancien format), il faut pip install xlrd en plus.
Étape 3 — Sélectionner et filtrer
Pour ne garder que les lignes où la région est Dakar :
dakar = df[df["Région"] == "Dakar"]
print(dakar.head())
print(dakar.shape)
Le filtre df["Région"] == "Dakar" renvoie un masque booléen (True/False par ligne). Passer ce masque à df[...] garde uniquement les lignes True. C’est l’équivalent direct du filtre auto Excel.
Pour combiner plusieurs critères — Dakar ET montant supérieur à 50 000 :
filtre = (df["Région"] == "Dakar") & (df["Montant"] > 50000)
result = df[filtre]
Attention aux parenthèses autour de chaque condition, et au & au lieu de and. C’est une convention pandas. Pour OU, utiliser |.
Étape 4 — Agréger : groupby
L’équivalent du tableau croisé dynamique en pandas est groupby. Pour le total des montants par région :
par_region = df.groupby("Région")["Montant"].sum()
print(par_region)
Pandas regroupe les lignes par la valeur de la colonne Région et applique sum() sur Montant. Le résultat est une série indexée par région.
Pour plusieurs agrégations en même temps — somme et moyenne :
par_region = df.groupby("Région")["Montant"].agg(["sum", "mean", "count"])
Pour croiser deux dimensions (Région × Produit) comme un TCD à deux axes :
tcd = df.pivot_table(values="Montant", index="Région", columns="Produit", aggfunc="sum", fill_value=0)
print(tcd)
L’argument fill_value=0 remplace les cellules vides par zéro, plus lisible.
Étape 5 — Ajouter des colonnes calculées
Pour ajouter une colonne qui calcule TVA à 18% sur Montant :
df["TVA"] = df["Montant"] * 0.18
df["TTC"] = df["Montant"] + df["TVA"]
Une formule appliquée à toute la colonne en une opération. Pas de glisser-déposer comme dans Excel.
Pour une formule conditionnelle (équivalent du SI) avec numpy :
import numpy as np
df["Categorie"] = np.where(df["Montant"] > 100000, "Gros", "Standard")
Pour plusieurs conditions imbriquées :
conditions = [df["Montant"] > 200000, df["Montant"] > 100000, df["Montant"] > 50000]
choix = ["VIP", "Gros", "Moyen"]
df["Niveau"] = np.select(conditions, choix, default="Petit")
Étape 6 — Manipuler les dates
Pour traiter une colonne Date comme une vraie date — extraire le mois, calculer un délai :
df["Date"] = pd.to_datetime(df["Date"])
df["Mois"] = df["Date"].dt.month
df["Annee"] = df["Date"].dt.year
df["Jour_semaine"] = df["Date"].dt.day_name()
Pour les ventes des 30 derniers jours :
from datetime import timedelta
seuil = pd.Timestamp.today() - timedelta(days=30)
recent = df[df["Date"] >= seuil]
Étape 7 — Sauvegarder le résultat
Une fois les transformations faites, exporter vers un nouveau fichier Excel :
df.to_excel("ventes_traitees.xlsx", index=False)
L’argument index=False évite d’ajouter une colonne supplémentaire avec les numéros de ligne pandas.
Pour exporter en CSV (plus universel, plus léger) :
df.to_csv("ventes_traitees.csv", index=False, encoding="utf-8-sig")
L’encodage utf-8-sig ajoute un BOM qui permet à Excel d’afficher correctement les accents quand il ouvre le CSV.
Pour écrire plusieurs feuilles dans un même classeur :
with pd.ExcelWriter("rapport.xlsx", engine="openpyxl") as writer:
df.to_excel(writer, sheet_name="Données", index=False)
par_region.to_excel(writer, sheet_name="Par région")
tcd.to_excel(writer, sheet_name="TCD")
Étape 8 — Vérifier que ça marche
Construisez le script complet : lecture, ajout TVA et TTC, filtre Dakar > 50 000, agrégation par produit, sauvegarde dans un classeur à 3 feuilles. Lancer. Ouvrir le fichier produit dans Excel pour vérifier que tout est correct.
Si le script plante, lire le message d’erreur ligne par ligne. Les erreurs pandas les plus fréquentes : KeyError (nom de colonne mal écrit), TypeError (opération entre types incompatibles), FileNotFoundError (chemin du fichier incorrect).
Erreurs fréquentes
| Symptôme | Cause | Solution |
|---|---|---|
ModuleNotFoundError: pandas |
pip install incomplet | Relancer pip install pandas openpyxl |
| KeyError sur un nom de colonne | Espace ou casse différents | Vérifier df.columns avant d’utiliser un nom |
| Date traitée comme texte | Format Excel inhabituel | pd.to_datetime(col, dayfirst=True) |
| Accents cassés à l’ouverture du CSV | Encodage manquant | encoding="utf-8-sig" |
| Excel verrouillé en écriture | Le fichier est ouvert dans Excel | Fermer Excel avant de relancer le script |
| Mémoire saturée sur gros fichier | Fichier > quelques GB | Lire par chunks avec chunksize=100000 |
Sur le même thème
- Tableaux croisés dynamiques — la version Excel native, plus accessible.
- Analyser avec un LLM — combiner pandas et IA pour des analyses ad hoc.
🔝 Retour au guide principal : Excel pour PME.
Foire aux questions
Pandas remplace-t-il complètement Excel ?
Non. Pandas excelle sur les volumes et les transformations reproductibles. Excel reste meilleur pour la saisie manuelle, la mise en forme visuelle, la collaboration avec des non-techniques. Beaucoup d’analystes utilisent les deux : pandas pour la préparation des données, Excel pour la présentation.
Quelle est la limite de taille de pandas ?
Pandas charge tout en mémoire. La limite est la RAM disponible. Sur un PC 16 Go, on traite confortablement 100 millions de lignes pour un fichier numérique simple. Pour plus, utiliser polars (alternative plus rapide) ou Spark.
Faut-il Anaconda pour démarrer ?
Anaconda installe Python + pandas + 100 autres bibliothèques en un seul installeur. Pratique pour démarrer sans savoir quoi installer, mais lourd (3-4 Go). Si vous savez utiliser pip, l’installation Python officielle suffit largement.
Comment éditer le code Python ?
Notepad fonctionne mais sans aucune aide. VS Code (gratuit, multi-plateforme) avec l’extension Python est le standard moderne. Sublime Text est plus léger. Pour les débutants, Thonny (livré avec Python) est très simple.
Pandas peut-il créer des graphiques ?
Oui. df["Montant"].plot(kind="bar") ouvre un graphique simple. Pour des graphiques plus poussés, utiliser matplotlib ou seaborn. Pour un export Excel avec graphique, plus simple : faire les calculs en pandas, écrire vers Excel, créer le graphique dans Excel.
Comment automatiser un script qui tourne tous les jours ?
Sur Windows, le Planificateur de tâches déclenche un script Python à heure fixe. Sur Linux, cron fait pareil. Le script lit les nouvelles données, applique les transformations, sauvegarde un rapport Excel. Combiné à un envoi email, on a une chaîne d’analyse autonome.
Tutoriel Excel adapté aux PME et professionnels du Sénégal, Côte d’Ivoire, Mali, Burkina Faso, Niger, Togo, Bénin, Guinée et Mauritanie. Devise FCFA, plan comptable SYSCOHADA, contexte ouest-africain.
📊 Modèles Excel prêts à l’emploi pour PME
Tableau de bord commercial, suivi de trésorerie, gestion de stock, fichier de paie SYSCOHADA — des fichiers construits pour le contexte des PME d’Afrique de l’Ouest.
À partir de 30 000 FCFA · Livraison sous 48 à 72 h après brief