Les données manquantes font partie du passé lorsque vous utilisez Python pandas.

Le nettoyage des données prend indubitablement beaucoup de temps en science des données, et les données manquantes sont l’un des défis auxquels vous serez souvent confronté. Pandas est un outil précieux de manipulation des données en Python qui vous aide à corriger les valeurs manquantes dans votre ensemble de données, entre autres choses.

Vous pouvez corriger les données manquantes en les supprimant ou en les remplissant avec d’autres valeurs. Dans cet article, nous allons expliquer et explorer les différentes façons de combler les données manquantes à l’aide de pandas.

Utilisez la méthode fillna() :

La fonction fillna() itère dans votre ensemble de données et remplit toutes les lignes nulles avec une valeur spécifiée. Elle accepte certains arguments facultatifs, dont les suivants :

Valeur : Il s’agit de la valeur que vous souhaitez insérer dans les lignes manquantes.

Méthode : Vous permet de remplir les valeurs manquantes en avant ou en arrière. Elle accepte un paramètre ‘bfill’ ou ‘ffill’.

En place : Cette option accepte une déclaration conditionnelle. Si elle est vraie, elle modifie le DataFrame de façon permanente. Sinon, elle ne le fait pas.

Avant de commencer, assurez-vous d’installer pandas dans votre environnement virtuel Python en utilisant pip dans votre terminal :

pip install pandas

Ensuite, dans le script Python, nous allons créer un DataFrame d’entraînement et insérer des valeurs nulles (Nan) dans certaines lignes :

import pandas
df = pandas.DataFrame({‘A’ : [0, 3, None, 10, 3, None],
‘B’ : [Aucun, Aucun, 7.13, 13.82, 7, 7],
‘C’ : [Aucun, « Pandas », Aucun, « Pandas », « Python », « JavaScript »]})

Maintenant, regardez comment vous pouvez remplir ces valeurs manquantes en utilisant les différentes méthodes disponibles dans Pandas.
Remplir les valeurs manquantes avec la moyenne, la médiane ou le mode

Cette méthode consiste à remplacer les valeurs manquantes par des moyennes calculées. Le remplissage des données manquantes avec une valeur moyenne ou médiane est applicable lorsque les colonnes concernées ont des types de données entiers ou flottants.

Vous pouvez également remplir les données manquantes avec la valeur du mode, qui est la valeur la plus fréquente. Cela s’applique également aux nombres entiers ou flottants. Mais c’est plus pratique lorsque les colonnes en question contiennent des chaînes de caractères.

Voici comment insérer la moyenne et la médiane dans les lignes manquantes du DataFrame que vous avez créé précédemment :

Pour insérer la valeur moyenne de chaque colonne dans ses lignes manquantes :

df.fillna(df.mean().round(1), inplace=True)

Pour la médiane :

df.fillna(df.median().round(1), inplace=True)
print(df)

L’insertion de la valeur modale comme vous l’avez fait pour la moyenne et la médiane ci-dessus ne capture pas l’intégralité du DataFrame. Mais vous pouvez l’insérer dans une colonne spécifique à la place, disons la colonne C :

df[‘C’].fillna(df[‘C’].mode()[0], inplace=True)

Cela dit, il est toujours possible d’insérer la valeur modale de chaque colonne sur toutes ses lignes manquantes en une seule fois en utilisant une boucle for :

for i in df.columns :
df[i].fillna(df[i].mode()[0], inplace=True)
print(df)

Si vous voulez être spécifique à une colonne tout en insérant la moyenne, la médiane ou le mode :

df.fillna({« A »:df[‘A’].mean(),
« B » : df[‘B’].median(),
« C » : df[‘C’].mode()[0]},
inplace=True)
print(df)

Remplir les lignes nulles avec des valeurs à l’aide de ffill

Il s’agit de spécifier la méthode fill à l’intérieur comme la fonction fillna(). Cette méthode remplit chaque ligne manquante avec la valeur de la ligne supérieure la plus proche.

On pourrait aussi l’appeler le forward-filling :

df.f

illna(method=’ffill’, inplace=True)

Remplissage des lignes manquantes avec des valeurs à l’aide de bfill

Ici, vous allez remplacer la méthode ffill mentionnée ci-dessus par bfill. Elle remplit chaque ligne manquante dans le DataFrame avec la valeur la plus proche en dessous.

Celle-ci est appelée backward-filling :

df.fillna(method=’bfill’, inplace=True)

La méthode replace()

Vous pouvez remplacer les valeurs Nan d’une colonne spécifique par la moyenne, la médiane, le mode ou toute autre valeur.

Voyez comment cela fonctionne en remplaçant les lignes nulles d’une colonne nommée par sa moyenne, sa médiane ou son mode :

import pandas
import numpy #ceci nécessite que vous ayez préalablement installé numpy

Remplacez les valeurs nulles par la moyenne :

df[‘A’].replace([numpy.nan], df[A].mean(), inplace=True)

Remplacer la colonne A avec la médiane :

df[‘B’].replace([numpy.nan], df[B].median(), inplace=True)

Utilisez la valeur modale pour la colonne C :

df[‘C’].replace([numpy.nan], df[‘C’].mode()[0], inplace=True)
print(df)

  1. Remplir les données manquantes avec interpolate()

La fonction interpolate() utilise les valeurs existantes dans le DataFrame pour estimer les lignes manquantes.

Exécutez le code suivant pour voir comment cela fonctionne :

Interpoler à rebours sur la colonne :

df.interpolate(method =’linear’, limit_direction =’backward’, inplace=True)

Interpoler en avant sur la colonne :

df.interpolate(method =’linear’, limit_direction = ‘forward’, inplace=True)

Traitez les lignes manquantes avec précaution

Bien que nous n’ayons envisagé que le remplissage des données manquantes avec des valeurs par défaut comme les moyennes, le mode et d’autres méthodes, il existe d’autres techniques pour fixer les valeurs manquantes. Les data scientists, par exemple, suppriment parfois ces lignes manquantes, selon le cas.

En outre, il est essentiel de réfléchir de manière critique à votre stratégie avant de l’utiliser. Sinon, vous risquez d’obtenir des résultats d’analyse ou de prédiction indésirables. Certaines stratégies initiales de visualisation des données peuvent vous aider.