Python — KPIs, qualité & mini-app
Jeu de données e-commerce fictif et pipeline léger en Pandas : génération → ingestion & nettoyage → KPIs + graphiques → contrôles qualité & journal → mini-app Streamlit. L’objectif est d’illustrer un flux « du notebook au produit » simple, reproductible et prêt à brancher sur un tableau de bord.
P1 — Ingestion & nettoyage

Objectifs & portée
Transformer des fichiers bruts en un jeu de tables lisibles et typées. On force les formats (dates, montants), on gère les valeurs douteuses, et on écrit deux sorties complémentaires : Parquet (lecture/BI rapide) et SQLite (jointures SQL simples).
- Validations de base : coercition numérique, parsing de dates, colonnes requises.
- Convention de nommage : snake_case et clés techniques
_id
. - Persistance duale : Parquet (colonne) pour l’analytics, SQLite pour l’explo ad-hoc.


Bénéfice : démarrer des analyses reproductibles (parquet + SQL) sans dépendre d’un entrepôt externe.
P2 — KPIs mensuels & graphiques

sales_monthly.csv
: un format d’échange universel (BI, Excel, outils no-code).Qu’est-ce qu’on calcule ?
- CA mensuel (CHF), volume de commandes, clients actifs, panier moyen.
- Fenêtre temporelle continue via un calendrier (tous les mois présents, même sans ventes).
- Exports CSV + PNG pour partage rapide dans des slides/rapports.



P3 — Contrôles qualité & journal

Pourquoi c’est utile ?
Avant d’alimenter un dashboard, on mesure la santé des données. Chaque règle renvoie un volume affecté et une sévérité (low/medium/high). Les résultats alimentent un journal d’exécution pour suivre l’historique des traitements.
- Fichier
logs/job_runs.csv
:job_name, timestamp, status, issues_found, message
. - Exploitable facilement : on filtre par job, agrège par jour/semaine, alerte via n8n/Make.
- Base d’un contrôle continu (DataOps) sans infra lourde.

P4 — Mini-app Streamlit (KPIs & API)

Interaction & intégration
Un bouton déclenche un appel d’API externe (mock FX & météo), concatène un message lisible et inscrit une nouvelle ligne dans le journal. On démontre ainsi comment « brancher le monde extérieur » dans un flux Python très simple.
- Écriture append dans
job_runs.csv
avec un message métier (EUR/CHF, météo Genève). - Rechargement instantané côté UI pour visualiser l’impact de l’action.
- Point d’entrée naturel pour notifier/planifier (cron, Azure, GitHub Actions).


external_api
horodaté.