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")).
| Besoin | pandas | Python 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 |
| Quantifier | df.isnull().sum(), / len(df) pour le pourcentage | sum(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
Supprimer : .dropna()
| Option | Effet |
|---|---|
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=N | garde la ligne si elle a au moins N valeurs non manquantes (supprimée si moins de N) |
axis=1 | agit 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