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 2 · Valeurs manquantes

Repérer, mesurer et supprimer les valeurs manquantes

Une valeur manquante, c'est une case sans information. Dans pandas elle s'écrit NaN (Not a Number) pour les numériques, NaT (Not a Time) pour les dates. En Python pur, on utilise None (ou float("nan")).

BesoinpandasPython pur
Masque des manquants.isnull() / .isna()v is None
Masque des présents.notnull()v is not None
Résumé par colonne.info() (non-nuls par colonne)compter les valeurs non None
Quantifierdf.isnull().sum(), / len(df) pour le pourcentagesum(1 for l in df if l[c] is None)

Piège : float("nan") == float("nan") vaut False ; on teste avec math.isnan(x), jamais avec == (précision ajoutée).

Vérifie que tu as compris

Que renvoie df.isnull().sum() ?

À toi de coder

Quantifier les manquants

Avant de décider quoi faire, on mesure : combien de valeurs manquent, colonne par colonne, et en proportion. Calcule manquants (dict colonne → nombre de None), total (toutes colonnes confondues) et part_C, la proportion de manquants de la colonne C.

Ctrl/⌘+Entrée

Supprimer : .dropna()

OptionEffet
how='any' (défaut)supprime la ligne si au moins une valeur manque
how='all'supprime la ligne seulement si toutes les valeurs manquent
thresh=Ngarde la ligne si elle a au moins N valeurs non manquantes (supprimée si moins de N)
axis=1agit sur les colonnes au lieu des lignes

Stratégie rapide mais qui peut entraîner une perte d'information significative. Le TP rappelle : si une colonne est quasi-exclusivement nulle, on peut la supprimer ; si les manquants sont peu nombreux, il vaut mieux les remplacer.

Vérifie que tu as compris

Avec dropna(how='all'), quelle ligne est supprimée ?

À toi de coder

dropna en Python pur : any, all, thresh

Reproduis trois variantes de dropna sur df. sans_any : lignes sans aucun manquant. sans_all : on retire seulement les lignes entièrement vides. avec_thresh2 : on garde les lignes ayant au moins 2 valeurs non manquantes (thresh=2).

Ctrl/⌘+Entrée