PaliSkill
Python avancé

Leçon 10 / 10 — Chapitre 10: Mise en pratique : pipeline d'analyse de données

Cas pratique : un mini-pipeline de données complet

Cette dernière leçon du module assemble l'intégralité du chapitre : récupération API, nettoyage, stockage SQLite, agrégation, et visualisation.

import requests
import pandas as pd
import sqlite3
import matplotlib.pyplot as plt

def recuperer_et_stocker(url, chemin_db="ventes.db"):
    reponse = requests.get(url, timeout=5)
    reponse.raise_for_status()
    df = pd.DataFrame(reponse.json())
    df = df.dropna(subset=["montant"])
    df = df[df["montant"] > 0]

    connexion = sqlite3.connect(chemin_db)
    df.to_sql("ventes", connexion, if_exists="replace", index=False)
    connexion.close()
    return df

def resumer_par_categorie(chemin_db="ventes.db"):
    connexion = sqlite3.connect(chemin_db)
    df = pd.read_sql("SELECT * FROM ventes", connexion)
    connexion.close()
    return df.groupby("categorie")["montant"].sum()

def visualiser(totaux):
    plt.bar(totaux.index, totaux.values, color="steelblue")
    plt.title("Total des ventes par categorie")
    plt.xlabel("Categorie")
    plt.ylabel("Montant total ($)")
    plt.savefig("ventes_par_categorie.png")
    plt.show()

recuperer_et_stocker("https://api.exemple.com/ventes")
totaux = resumer_par_categorie()
print(totaux)
visualiser(totaux)

Ce que fait chaque partie :

  • recuperer_et_stocker (vue à la leçon précédente) récupère, nettoie et sauvegarde les données brutes dans SQLite.
  • resumer_par_categorie relit la table avec pd.read_sql() (vu dans ce chapitre) et agrège avec .groupby() (vu au sixième chapitre), en repartant de la base plutôt que des données déjà en mémoire — utile si l'analyse est relancée bien après la récupération initiale.
  • visualiser (vue à ce chapitre) transforme le résumé en graphique en barres, avec titre et légendes, sauvegardé en image avant affichage.

Ce pipeline illustre un cycle complet réutilisable, du même type que ceux employés en analyse de données réelle : récupérer une fois, stocker durablement, puis réanalyser et visualiser autant de fois que nécessaire, sans jamais rappeler l'API pour la seule étape de visualisation.

Ce module a parcouru la programmation orientée objet, les décorateurs, les itérateurs et générateurs, pandas, les requêtes HTTP, la structuration de projet, et deux mises en pratique complètes — l'ensemble des notions avancées de ce parcours Python.

À vous de jouer : modifiez visualiser pour utiliser plt.plot() au lieu de plt.bar(), et comparez les deux rendus.

🔒

Continuez ce module

Débloquez les leçons restantes ainsi que la certification finale.

2 500 XOF / 3,81 € / 4,15 $

Débloquez les 87 leçons restantes de ce module

Votre paiement est vérifié avant l'activation de l'accès