Durée : 7 heures | Niveau : Débutant
La Data Analysis (analyse de données) est le processus d'inspection, de nettoyage, de transformation et de modélisation de données dans le but de découvrir des informations utiles, de tirer des conclusions et de soutenir la prise de décision.
Le Data Analyst est le traducteur entre les données et le business. Il doit :
Définition : Rassembler les données depuis différentes sources.
# Collecte depuis un fichier CSV
import pandas as pd
data = pd.read_csv("ventes.csv")
Définition : Organiser et conserver les données de manière structurée et accessible.
Définition : Corriger les erreurs, traiter les valeurs manquantes et standardiser les formats.
# Supprimer les doublons
data = data.drop_duplicates()
# Remplir les valeurs manquantes
data["age"].fillna(data["age"].mean(), inplace=True)
# Convertir les types
data["date"] = pd.to_datetime(data["date"])
Définition : Appliquer des techniques statistiques et algorithmiques pour extraire des insights.
Définition : Représenter graphiquement les données pour faciliter la compréhension.
Définition : Utiliser les insights pour guider les actions business.
Exemple concret :
L'analyse montre que 60% des clients abandonnent leur panier après 3 jours.
Action : Mettre en place un email de relance automatique à J+2.
| Outil | Rôle | Usage |
|---|---|---|
| SQL | Interrogation de données | Requêtes, jointures, agrégations |
| DuckDB | Moteur analytique | Analyse rapide de gros volumes |
| Python | Analyse et transformation | Nettoyage, statistiques, ML |
| Pandas | Manipulation de données | DataFrames, transformations |
| Streamlit | Restitution interactive | Dashboards, applications web |
import pandas as pd
# Créer un DataFrame
data = {
"nom": ["Alice", "Bob", "Charlie"],
"age": [25, 30, 35],
"ville": ["Paris", "Lyon", "Marseille"]
}
df = pd.DataFrame(data)
print(df)
-- nom age ville
-- 0 Alice 25 Paris
-- 1 Bob 30 Lyon
-- 2 Charlie 35 Marseille
import numpy as np
# Calculs vectorisés (rapides)
ages = np.array([25, 30, 35, 40, 45])
print(ages.mean()) # 35.0
print(ages.std()) # 7.91
import matplotlib.pyplot as plt
# Graphique simple
x = [1, 2, 3, 4, 5]
y = [2, 4, 6, 8, 10]
plt.plot(x, y)
plt.xlabel("X")
plt.ylabel("Y")
plt.title("Mon premier graphique")
plt.show()
DuckDB est une base de données analytique embarquée conçue pour l'analyse de données.
import duckdb
# Créer une connexion en mémoire
con = duckdb.connect()
# Exécuter une requête simple
result = con.execute("SELECT 42 AS answer").fetchall()
print(result) # [(42,)]
# Lire un CSV directement
result = con.execute("SELECT * FROM "data/ventes.csv" LIMIT 5").fetchdf()
print(result)
import duckdb
import pandas as pd
# 1. Créer une connexion
con = duckdb.connect("ma_base.db")
# 2. Créer une table depuis un CSV
con.execute("""
CREATE TABLE ventes AS
SELECT * FROM read_csv_auto("data/ventes.csv")
""")
# 3. Requête SQL et conversion en Pandas
query = """
SELECT
produit,
SUM(montant) as total_ventes,
COUNT(*) as nb_transactions
FROM ventes
GROUP BY produit
ORDER BY total_ventes DESC
"""
df = con.execute(query).fetchdf()
# 4. Manipulation avec Pandas
print(df.head())
print(f"Ventes totales : {df["total_ventes"].sum():.2f} €")
# 5. Fermer la connexion
con.close()
Testez vos connaissances sur cette séance ! 10 questions pour valider votre compréhension.