Skip to content

Pandas Where : exploiter la puissance de Pandas pour gérer les valeurs nulles

Updated on

Travailler avec des données est au cœur de notre activité. Cependant, les données brutes sont souvent désordonnées, incomplètes et remplies de valeurs nulles qu’il faut traiter. Sans un traitement approprié, ces valeurs nulles peuvent provoquer des problèmes lors d’analyses de données ou de tâches de machine learning. Heureusement, avec la bibliothèque Pandas en Python, nous pouvons gérer rapidement et efficacement les valeurs nulles dans nos données.

Dans cet article, nous allons explorer la fonction Pandas where() ainsi que diverses autres techniques pour gérer les valeurs nulles dans Pandas. Nous verrons comment identifier et traiter les données manquantes dans un DataFrame Pandas, des stratégies pour travailler avec les valeurs nulles, des bonnes pratiques pour gérer les valeurs manquantes, et bien plus encore.

Quand utiliser where() vs mask()

where() conserve les valeurs qui satisfont une condition et remplace les autres ; mask() fait l’inverse. Les deux respectent la sémantique nullable de pandas (pd.NA) dans pandas 2.x.

import pandas as pd
 
s = pd.Series([10, None, 30, 40], dtype="Int64")
keep_under_35 = s.where(s < 35)     # 40 becomes <NA>
mask_nulls = s.mask(s.isna(), 0)    # fill nulls without touching valid rows

Utilisez where() lorsque vous souhaitez préserver les entrées valides et mettre le reste à null, puis combinez avec fillna lorsque vous avez besoin de valeurs par défaut.

Vous voulez créer rapidement des visualisations de données en Python ?

PyGWalker est un projet Python Open Source qui peut accélérer le flux de travail d’analyse et de visualisation de données directement dans des environnements basés sur Jupyter Notebook.

PyGWalker (opens in a new tab) transforme votre Pandas DataFrame (ou Polars DataFrame) en une interface visuelle où vous pouvez faire glisser et déposer des variables pour créer facilement des graphiques. Utilisez simplement le code suivant :

pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)

Vous pouvez exécuter PyGWalker dès maintenant dans ces notebooks en ligne :

Et n’oubliez pas de nous laisser une ⭐️ sur GitHub !

Run PyGWalker in Kaggle Notebook (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)Give PyGWalker a ⭐️ on GitHub (opens in a new tab)
Run PyGWalker in Kaggle Notebook (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)Run PyGWalker in Google Colab (opens in a new tab)

Identifier et gérer les données manquantes dans un DataFrame Pandas

L’une des tâches les plus courantes lorsque l’on travaille avec des données consiste à vérifier la présence de données manquantes. Pandas fournit plusieurs moyens d’identifier les valeurs nulles, notamment isnull() et notnull(), qui renvoient des valeurs booléennes indiquant si chacune des valeurs du DataFrame est nulle ou non. Nous pouvons utiliser ces fonctions pour savoir rapidement s’il existe des valeurs manquantes dans nos données.

Par exemple, imaginons que nous ayons un DataFrame avec plusieurs colonnes, dont certaines contiennent des valeurs manquantes.

import pandas as pd
import numpy as np

data = {'name': ['Alice', 'Bob', 'Charlie'],
        'age': [25, np.nan, 30],
        'gender': ['F', 'M', 'M'],
        'income': [50000, 60000, np.nan]}

df = pd.DataFrame(data)

Pour vérifier les valeurs manquantes dans notre DataFrame, nous pouvons appliquer la fonction isnull() à l’ensemble du DataFrame.

print(df.isnull())

Cela renverra un DataFrame de la même forme que le DataFrame initial, où True représente une valeur nulle et False une valeur non nulle.

Pour compter le nombre de valeurs manquantes dans chaque colonne de notre DataFrame, nous pouvons utiliser la méthode sum() après avoir appliqué la fonction isnull().

print(df.isnull().sum())

Cela renverra un objet Series dont l’index correspond aux noms des colonnes et les valeurs au nombre de valeurs manquantes dans chaque colonne.

Nous pouvons également supprimer les lignes ou les colonnes contenant des valeurs nulles à l’aide de la méthode dropna(). Cette méthode retire toute ligne ou colonne qui contient au moins une valeur nulle.

df.dropna()

Autrement, nous pouvons remplacer les valeurs nulles par une valeur spécifique à l’aide de la fonction fillna().

df.fillna(0)

Ce ne sont là que quelques exemples des méthodes disponibles dans Pandas pour identifier et traiter les valeurs nulles. Pour une liste complète, veuillez consulter la documentation Pandas.

Travailler avec les valeurs nulles dans Pandas

Les valeurs nulles peuvent représenter un défi lors de l’analyse de données ou de tâches de machine learning. Cependant, il existe de nombreuses stratégies pour traiter efficacement ces valeurs. En voici quelques-unes :

Interpolation

Une technique courante pour gérer les données manquantes est l’interpolation. L’interpolation est une technique statistique qui estime les valeurs manquantes à partir des valeurs observées dans les lignes voisines. Dans Pandas, nous pouvons utiliser la méthode interpolate() pour effectuer une interpolation sur notre DataFrame.

df.interpolate()

Remplissage des valeurs manquantes

Une autre stratégie pour travailler avec les valeurs nulles consiste à les remplacer par une constante ou par une valeur calculée à partir des données restantes. Nous pouvons utiliser la méthode fillna() pour remplir les valeurs nulles avec une valeur spécifique.

df.fillna(0)

Nous pouvons également remplir les valeurs nulles avec la moyenne, le mode ou la médiane des données restantes.

df.fillna(df.mean())

Suppression des valeurs manquantes

Supprimer les valeurs manquantes est une stratégie courante pour gérer les valeurs nulles. Nous pouvons utiliser la méthode dropna() pour supprimer toutes les lignes contenant une ou plusieurs valeurs nulles.

df.dropna()

Nous pouvons également supprimer les colonnes qui contiennent des valeurs nulles.

df.dropna(axis=1)

Imputation

L’imputation est une technique qui consiste à estimer les valeurs manquantes à partir des données observées. Dans Pandas, nous pouvons utiliser le package scikit-learn pour effectuer l’imputation.

from sklearn.impute import SimpleImputer

imp = SimpleImputer(missing_values=np.nan, strategy='mean')

df[['age', 'income']] = imp.fit_transform(df[['age', 'income']])

Ce ne sont là que quelques exemples parmi les nombreuses stratégies disponibles pour travailler avec les valeurs nulles dans Pandas. La stratégie appropriée dépend du problème spécifique et de la nature des données manquantes.

Bonnes pratiques pour gérer les valeurs manquantes dans Pandas

Gérer les données manquantes peut être complexe, mais certaines bonnes pratiques peuvent aider. Voici quelques conseils pour traiter les valeurs nulles dans Pandas :

  • Vérifiez toujours la présence de données manquantes avant de réaliser une analyse.
  • Utilisez des statistiques descriptives pour comprendre la distribution des données et identifier les valeurs aberrantes.
  • Envisagez différentes stratégies pour gérer les données manquantes, comme l’interpolation, l’imputation ou la suppression des valeurs manquantes.
  • Soyez conscient des conséquences possibles de chaque stratégie et de la manière dont elles peuvent affecter l’analyse.
  • Utilisez des outils de visualisation de données pour mieux comprendre la nature et la distribution des données.
  • Documentez les valeurs manquantes et la manière dont elles ont été traitées dans l’analyse.

En suivant ces bonnes pratiques, nous pouvons mieux gérer les valeurs nulles dans nos données et réaliser efficacement des analyses de données ou des tâches de machine learning.

Conclusion

Les valeurs nulles peuvent être problématiques lorsque l’on travaille avec des données, mais avec Pandas, nous disposons d’un ensemble puissant d’outils pour identifier et traiter les données manquantes. Dans cet article, nous avons exploré la fonction Pandas where() ainsi que diverses autres techniques et stratégies pour travailler avec les valeurs nulles dans Pandas. En appliquant ces techniques et en suivant les bonnes pratiques, nous pouvons mieux gérer les valeurs nulles dans nos données et mener à bien nos analyses de données et projets de machine learning.