Dashboard Power BI professionnel avec KPIs temps réel
âââ DifficultĂ©: IntermĂ©diaire | â±ïž DurĂ©e: 60 minutes
Contexte : La startup e-commerce n'a aucune visibilité sur ses performances.
ProblĂšme : Excel ne suffit plus avec 500k+ transactions annuelles.
Objectif : Dashboard professionnel avec KPIs temps réel pour le CEO et l'équipe marketing.
Téléchargez et exécutez le script Python pour générer les données :
"""
PROJET 1 : Dashboard KPIs E-commerce
Génération de données et analyse
"""
import pandas as pd
import numpy as np
import duckdb
from datetime import datetime, timedelta
# Générer des données e-commerce
def generate_ecommerce_data(n_transactions=1000):
np.random.seed(42)
# Dates sur 12 mois
end_date = datetime.now()
start_date = end_date - timedelta(days=365)
dates = pd.date_range(start=start_date, end=end_date, freq="H")
# Générer les transactions
data = []
for i in range(n_transactions):
data.append({
"transaction_id": i + 1,
"date": np.random.choice(dates),
"client_id": np.random.randint(1001, 1100),
"produit": np.random.choice(["Laptop", "Souris", "Clavier"]),
"quantite": np.random.randint(1, 4),
"prix_unitaire": np.random.choice([999.99, 49.99, 149.99]),
})
df = pd.DataFrame(data)
df["montant_total"] = df["quantite"] * df["prix_unitaire"]
return df
# Analyser avec DuckDB
def analyze_data(df):
con = duckdb.connect()
# KPI : CA Total
ca_total = con.execute("""
SELECT SUM(montant_total) as ca_total
FROM df
""").fetchdf()
print(f"đ° CA Total : {ca_total["ca_total"].iloc[0]:,.2f} âŹ")
# Exécution
df = generate_ecommerce_data(5000)
analyze_data(df)
df.to_csv("data/ecommerce.csv", index=False)
đ Fichier complet : projets/code/projet1_ecommerce_starter.py
đ ExĂ©cution : python projet1_ecommerce_starter.py
06-dashboard-kpis-ecommerce/
âââ src/
â âââ etl_pipeline.py # Nettoyage donnĂ©es
â âââ db_setup.py # CrĂ©ation tables
âââ sql/
â âââ schema.sql # Star schema
â âââ queries.sql # RequĂȘtes complexes
âââ dashboards/
â âââ ecommerce.pbix # Power BI
â âââ ecommerce.twb # Tableau
âââ data/
âââ raw/ # CSV brut