Libérez jusqu'à 15h par mois
DataGyver #4 : Apprenez à automatiser vos rapports avec Python
Bienvenue à la 4ème édition de cette newsletter !
Nous venons de passer le cap des 600 abonné.e.s à cette Newsletter. Merci pour votre confiance, vos partages, vos retours 🙏.
Dans ce numéro, j’espère vous faire gagner quelques heures par semaine ;)
Avez-vous déjà calculé le temps que vous passez chaque mois à refaire manuellement les mêmes rapports ? En discutant avec mes clients et lecteurs, j'observe qu'un professionnel des données passe en moyenne 10 à 15 heures par mois à mettre à jour des tableaux et des présentations. Sur une année, cela représente plus de 120 à 180 heures : c’est presque un mois de travail complet !
Ces heures représentent bien plus qu'un simple coût d'opportunité. Elles sont aussi sources de :
Erreurs humaines aux conséquences parfois catastrophiques : Un chiffre mal copié, une formule oubliée, et ce n'est pas seulement votre crédibilité qui est en jeu. En 2023, le fonds souverain norvégien (le plus grand fonds d'investissement au monde) a perdu 92 millions de dollars à cause d'une simple erreur dans un fichier Excel. Une faute de frappe dans une cellule a entraîné une erreur de calcul dans la composition de l'indice du fonds.
Et ce n'est pas un cas isolé : JP Morgan Chase avait déjà connu une situation similaire en 2012.
Frustration professionnelle croissante : Combien de fois avez-vous soupiré en recevant "une petite modification" à apporter à votre rapport, sachant que cela implique une cascade de changements manuels ?
Limitation dans votre évolution de carrière : Les tâches répétitives vous maintiennent dans un rôle d'exécutant plutôt que de stratège. Vos compétences analytiques restent sous-exploitées.
Rigidité face aux demandes urgentes : "Peux-tu me refaire ce rapport, mais uniquement pour la région Sud et avec les données du dernier trimestre ?" - Cette simple demande peut transformer votre journée en cauchemar.
Mais que se passerait-il si vos rapports se mettaient à jour automatiquement, pendant que vous travaillez sur des tâches à plus forte valeur ajoutée, sur le développement de nouvelles compétences ou bien même pendant que vous dormez ?
Pourquoi les rapports “statiques” sont devenus obsolètes ?
Dans l'économie actuelle où les données évoluent en temps réel, les rapports mensuels figés sont comme des photographies jaunies d'une réalité qui n'existe plus. Ils sont obsolètes avant même d'être distribués.
Comparons une mise à jour 100% manuelle vs une solution automatisée via Python (ça fonctionne aussi avec R)
Une responsable marketing me confiait récemment : "Je passais chaque jeudi et vendredi à préparer les mêmes KPIs pour notre réunion du lundi. Après avoir automatisé ce processus, j'utilise désormais ce temps pour analyser les tendances et proposer des recommandations stratégiques. Mon directeur m'a dit qu'il ne reconnaissait plus mes présentations tellement elles apportent plus de valeur."
Le coût caché des rapports manuels va bien au-delà du temps perdu. C'est aussi :
Le coût des décisions prises sur des données périmées
Le coût des talents sous-exploités, confinés à des tâches répétitives
Le coût des opportunités manquées pendant que vous copiez-collez des chiffres (0 valeur ajoutée)
Comment l'automatisation avec Quarto
Quarto : La meilleure solution de reporting moderne ?
Vous avez peut-être entendu parler de Quarto, mais savez-vous vraiment ce qui en fait l'outil parfait pour automatiser vos rapports ?
Quarto, qu'est-ce que c'est concrètement ?
Quarto est un système de publication scientifique open-source développé par RStudio (maintenant Posit), les créateurs de RMarkdown. Il permet de combiner dans un seul document :
Du texte formaté (titres, paragraphes, listes)
Des requêtes SQL pour extraire vos données
Du code Python pour les analyser
Des visualisations interactives (via Plotly, Bokeh, etc.)
Des équations mathématiques (LaTeX)
Des tableaux dynamiques (avec iTables par exemple)
Le tout est compilé automatiquement en un document professionnel dans le format de votre choix et personnalisable (via CSS).
À quoi ressemble un document Quarto ?
Voici un exemple simple mais puissant de ce à quoi ressemble un fichier Quarto (.qmd
). On commence par une en-tête YAML qui décrit les principales options :
---
title: "Rapport de Performance Commerciale"
author: "Gaël Penessot"
date: "2025-04-29"
format:
html:
theme: cosmo
toc: true # Table des matières
code-fold: true # Bouton pour masquer/afficher le code
code-summary: "Voir le code" # Texte du bouton
---
On peut ensuite entrer le contenu texte au format Markdown, comme dans un Jupyter Notebook :
# Résumé
Ce rapport présente l'analyse des ventes du mois d'avril 2025, avec un focus sur les performances par région et par produit.
## Points clés
- Les ventes ont augmenté de 12% par rapport au mois précédent - La région Sud surperforme avec +18% de croissance
- Le nouveau produit X représente déjà 15% du chiffre d'affaires
La où ça devient intéressant, ce sont les blocs de code (le mieux est de les masquer dans le rapport, un bouton permet de l’afficher au besoin) :
```{python}
# Ce code s'exécute automatiquement lors de la génération du rapport
import pandas as pd
import matplotlib.pyplot as plt
# Pour l'exemple, créons des données fictives
ventes = pd.DataFrame(
{ 'region': ['Nord', 'Sud', 'Est', 'Ouest', 'Centre'], 'montant': [120000, 180000, 90000, 110000, 85000] }
)
# Créer un graphique
plt.figure(figsize=(10, 6))
plt.bar(ventes['region'], ventes['montant'] / 1000) plt.title('Ventes par région (Avril 2025)') plt.ylabel('Montant (k€)') plt.xticks(rotation=0) plt.grid(axis='y', linestyle='--', alpha=0.7)
# Afficher le graphique dans le rapport
plt.show()
```
Voila à quoi ressemble le rendu (attention c’est très basique, on peut pousser beaucoup plus loin la personnalisation du rapport) :
Pourquoi Quarto change la donne :
Reproductibilité garantie : Fini les "mais comment j'avais fait ce graphique le mois dernier ?" Le code est sauvegardé avec le document.
Multilangages : Contrairement à Jupyter Notebook, Quarto supporte nativement plusieurs langages dans le même document (Python, R, SQL, Julia).
Multi-formats de sortie sans effort supplémentaire :
HTML interactif avec filtres et visualisations dynamiques
PDF de qualité publication
Présentations PowerPoint ou Reveal.js
Word pour vos collègues qui préfèrent ce format
Sites web complets pour les dashboards d'entreprise
Collaboration facilitée : Le format texte permet un versionning efficace avec Git.
Programmation conditionnelle : Générez différentes versions du même rapport pour différentes audiences sans dupliquer votre travail.
Le pipeline d'automatisation expliqué simplement :
Extraction : Vos données sont extraites automatiquement depuis vos sources (bases de données, APIs, fichiers)
Transformation : Quarto exécute votre code Python pour nettoyer et analyser les données
Visualisation : Vos graphiques et tableaux sont générés automatiquement
Publication : Un document professionnel est créé sans aucune intervention manuelle
Distribution : Le rapport peut être envoyé par email, publié sur un site web, ou déposé sur un serveur partagé
Planification : Le tout peut être programmé pour s'exécuter à intervalles réguliers (quotidien, hebdomadaire, mensuel)
Pour les curieux qui voudraient voir à quoi ressemble un document Quarto, je vous partage cet article medium que j’ai écrit. C’est un rapport qui analyse les cours du Bitcoin sur les 10 dernières minutes. Vous ne gagnerez pas d’argent mais surement beaucoup de temps en adaptant le contenu à vos besoins. Retenez que la syntaxe est accessible même aux débutants en programmation. Le lien du repo Github est donné dans l’article, vous avez tout ce qu’il faut maintenant pour bien débuter ;)
J’ai aussi un autre exemple de repo avec Quarto + DuckDB + BDD SQLite :
Le petit bonus : même vos PowerPoint peuvent s'automatiser
Avouez-le : combien de fois par mois vous retrouvez-vous à copier-coller des tableaux et des graphiques dans PowerPoint ? Cette tâche chronophage est non seulement ennuyeuse mais aussi propice aux erreurs.
La bonne nouvelle : grâce à la bibliothèque Python-pptx, vous pouvez automatiser la création et la mise à jour de vos présentations.
Mon expérience personnelle :
J'ai moi-même appliqué cette approche à un rapport que je devais mettre à jour régulièrement. Ce qui me prenait auparavant 1 heure complète de manipulation fastidieuse a été réduit à 2 minutes d'exécution d'un script.
Mon script Python réalisait les opérations suivantes :
Scraping d'un site web pour récupérer les prix spots et long terme (coûts certificat économie énergie)
Analyse des résultats par équipe : résultats à date, estimation point de sortie, détail des affaires, etc.
Création automatique des graphiques pertinents
Génération d'une présentation PowerPoint avec une dizaine de slides par équipe (x2)
En 2025, on pourrait ensuite imaginer une pré-analyse des résultats par un LLM. On arrive à un résultat proche du rendu final à 95% (toujours contrôler avant diffusion ;))
Comment cela fonctionne-t-il ?
Le principe est simple mais puissant :
Vous créez un template PowerPoint avec des emplacements prédéfinis
Votre script Python :
Extrait les données actualisées (de bases de données, API, fichiers Excel, ou même sites web)
Génère les visualisations nécessaires
Remplit automatiquement le template avec les données spécifiques
Duplique les slides pour chaque segment/produit/région si nécessaire
Sauvegarde une présentation personnalisée prête à l'emploi
Le plus impressionnant ? Cette approche fonctionne pour tous les profils, du pro de la data au bidouilleur qui veut optimiser son travail. Si vous savez écrire une requête SQL basique et comprendre un script Python simple, vous pouvez automatiser vos PowerPoint.
L'impact va bien au-delà du gain de temps. C'est tout votre positionnement professionnel qui change : au lieu de passer votre temps à mettre à jour des chiffres, vous pouvez vous concentrer sur l'analyse et les recommandations stratégiques.
Curieux de voir comment mettre cela en place ? Retrouvez la marche à suivre dans cet article détaillé sur Medium : au programme, un exemple concret et le code source pour reproduire et adapter chez vous.
Et vous ?
Mon post sur l’automatisation des PPTX avait fait réagir bien au delà de mon audience habituelle, on voit PowerPoint est une souffrance pour pas mal de personnes ;)
Avant de créer mon prochain contenu sur l'automatisation des rapports, j'aimerais vraiment comprendre vos défis spécifiques pour développer un contenu utile, comme un tutoriel, un article, une vidéo.
Pourquoi commencer dès maintenant ?
L'automatisation des rapports n'est plus un luxe ou une compétence "nice-to-have", c'est devenu une nécessité professionnelle :
Pour votre productivité personnelle :
Imaginez récupérer 5 heures par semaine, soit plus de 250 heures par an. C'est l'équivalent de 6 semaines de travail complètes ! Qu'en feriez-vous ?
Approfondir vos analyses pour détecter des opportunités cachées
Développer de nouvelles compétences
Lancer un side business, la formation s’y prête bien
Améliorer votre équilibre vie professionnelle/personnelle
Pour votre évolution de carrière :
L'automatisation des rapports n'est pas seulement un gain de temps - c'est un changement fondamental dans votre positionnement professionnel. En automatisant les tâches à faible valeur ajoutée, vous pouvez consacrer votre temps et vos compétences à des analyses plus approfondies et à des projets stratégiques.
Cette transition du "producteur de rapports" à "analyste stratégique" est de plus en plus valorisée dans les organisations. Les professionnels capables non seulement d'extraire des données mais aussi de les transformer en insights actionnables sont systématiquement mieux positionnés pour des évolutions de carrière.
Cette tendance est visible dans les descriptions de postes actuelles, où les compétences en automatisation apparaissent désormais régulièrement aux côtés des compétences analytiques traditionnelles.
Alors, ce petit tour d'horizon de l'automatisation vous a parlé ? Si vous en avez marre comme moi de vous arracher les cheveux sur des rapports manuels, lâchez un petit like ! 👍 Ça me fait toujours plaisir de voir que mes astuces vous aident.
On se retrouve bientôt pour d'autres outils pour optimiser vos projets et gagner en productivité. D'ici là, moins de copier-coller, plus de code ! :)
Et merci pour cet article qui tombe à pic, j'étais en train de build un rapport HTML qui charge un fichier .json.gz que je comptais envoyer tous les mois, c'est peut etre un poil plus opti de passer par Quarto