Aller au contenu
Apprendre.
  • M1 · toutes les matières15 matières : Préparation de données, API & sécurité, CI/CD, Docker, Merise, Dataviz, KNIME, ML appliqué : projet LoL, SQL & UML, SQL avancé, Machine Learning, Git, IA frugale & responsable, Qualité des données, MathématiquesAnnée
  • M2 · toutes les matières4 matières : Deep Learning, AI Act, Comex & Fundraising, Gouvernance & DataMeshAnnée
  • Deep LearningM2 · 4 modules · Réseaux de neurones, CNN, texte, modèles génératifs.Matière
  • Préparation de donnéesM1 · 3 modules · Nettoyer, transformer et fusionner des données avec Python.Matière
  • API & sécuritéM1 · 2 modules · Consommer, concevoir et sécuriser des API.Matière
  • CI/CDM1 · 1 module · Intégration et livraison continues.Matière
  • DockerM1 · 3 modules · Conteneurs, images, volumes, réseaux, Compose.Matière
  • MeriseM1 · 2 modules · Modéliser une base : MCD, MLD, MPD.Matière
  • DatavizM1 · 2 modules · Visualiser pour comprendre et décider.Matière
  • KNIMEM1 · 1 module · Explorer et nettoyer des données en workflow.Matière
  • ML appliqué : projet LoLM1 · 2 modules · Du besoin métier au POC de vision par ordinateur.Matière
  • SQL & UMLM1 · 3 modules · Modèles UML et requêtes SQL.Matière
  • SQL avancéM1 · 3 modules · Jointures, fenêtres, CTE, optimisation.Matière
  • Machine LearningM1 · 3 modules · Régression, classification, segmentation, projet.Matière

↑↓ naviguer↵ ouvre le résultat en surbrillanceesc fermer

Partie 1 · Exploration

L'analyse exploratoire (EDA) : regarder avant de toucher

Avant de nettoyer, il faut comprendre ce qu'on a. C'est l'analyse exploratoire (EDA). Les outils du cours :

BesoinpandasPython pur
Aperçu.head(n), .tail(n), .sample(n), .info()df[:n], df[-n:], random.sample(df, n)
Résumé statistique.describe() : count, mean, std, min, quartiles, maxstatistics.mean, median, stdev, quantiles
Fréquences.value_counts() (normalize=True pour des proportions)collections.Counter
Unicité.unique(), .nunique()set(...), len(set(...))
Corrélation.corr() (matrice, colonnes numériques)statistics.correlation(x, y)

.describe() ne concerne que les colonnes numériques ; .value_counts() les colonnes catégorielles. .nunique() aide à reconnaître une colonne catégorielle (peu de valeurs distinctes) ou un identifiant (autant de valeurs que de lignes). .corr() repère des relations linéaires potentielles.

Vérifie que tu as compris

Quelle méthode compte combien de fois chaque valeur d'une colonne catégorielle apparaît ?

Vérifie que tu as compris

Une colonne a autant de valeurs distinctes (nunique) que le DataFrame a de lignes. Elle est probablement :

Statistiques en Python pur

import statistics as st
from collections import Counter
salaires = [42000, 38000, 52000, 61000, 33000]
st.mean(salaires), st.median(salaires)   # 45200, 42000
st.stdev(salaires)                       # écart-type (échantillon, ddof=1 comme pandas)
Counter(["Paris", "Lyon", "Paris"]).most_common()   # [('Paris', 2), ('Lyon', 1)]

Attention : le .std() de pandas est l'écart-type d'échantillon (divise par n−1), comme statistics.stdev ; statistics.pstdev divise par n (précision ajoutée).

Vérifie que tu as compris

Que contient .describe() pour une colonne numérique ?

À toi de coder

Premier regard sur un jeu de données

Reproduis en Python pur trois gestes d'EDA sur les mêmes employés : la moyenne et la médiane du salaire (pour comparer : si elles diffèrent beaucoup, la distribution est asymétrique), la fréquence des villes en proportion (équivalent de value_counts(normalize=True)), et le nombre de villes distinctes.

Ctrl/⌘+Entrée

À toi de coder

Une corrélation à la main

.corr() calcule le coefficient de Pearson entre colonnes numériques. En Python 3.10+, statistics.correlation(x, y) fait de même pour deux listes. Calcule la corrélation entre l'âge et le salaire, arrondie à 2 décimales, puis dis (lien_positif) si elle est positive. Rappel : une corrélation mesure un lien linéaire, pas une causalité.

Ctrl/⌘+Entrée