Supprimer NaN de la liste en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Supprimer NaN de la liste en Python en utilisant la méthode math.isnan()
  2. Supprimer NaN de la liste en Python en utilisant la méthode numpy.isnan()
  3. Supprimer NaN de la liste des chaînes en Python
  4. Supprimer NaN de la liste en Python en utilisant la méthode pandas.isnull()
Supprimer NaN de la liste en Python

Ce tutoriel examinera différentes méthodes pour trouver et supprimer les valeurs NaN de la liste en Python. La valeur NaN en programmation signifie Not a Number, ce qui signifie que la valeur de la variable n’est pas un nombre.

Si une valeur NaN apparaît dans un tableau ou une liste, cela peut créer des problèmes et des erreurs dans les calculs. Nous examinerons également les moyens de supprimer les valeurs de chaîne nan de la liste dans ce tutoriel. Nous pouvons supprimer les valeurs NaN ou 'nan' de la liste, en utilisant les méthodes suivantes.

Supprimer NaN de la liste en Python en utilisant la méthode math.isnan()

La méthode math.isnan(value) prend un nombre value en entrée et renvoie True si la value est une valeur NaN et renvoie False dans le cas contraire. On peut donc vérifier s’il y a une valeur NaN dans une liste ou un tableau de nombres en utilisant la méthode math.isnan().

Nous avons besoin de la méthode math.isnan() car if float('NaN') == float('NaN') renvoie False en Python ou on peut dire que deux valeurs NaN ne sont pas égales en Python. L’exemple de code ci-dessous montre comment utiliser la méthode math.isnan() pour supprimer la valeur NaN de la liste.

import math

mylist = [1, 2, float("nan"), 8, 6, 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if math.isnan(x) == False]
print(newlist)

Production:

[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]

Supprimer NaN de la liste en Python en utilisant la méthode numpy.isnan()

La méthode np.isnan(array) prend le array comme entrée et renvoie True pour l’index correspondant si c’est la valeur NaN et renvoie False sinon.

L’exemple de code ci-dessous montre comment supprimer les valeurs NaN de la liste en utilisant la méthode numpy.isnan():

import numpy as np

mylist = [1, 2, float("nan"), 8, 6, 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if np.isnan(x) == False]
print(newlist)

Production:

[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]

Supprimer NaN de la liste des chaînes en Python

Supposons maintenant que la liste de nombres soit convertie en type chaîne, et nous voulons vérifier si elle contient des valeurs NaN. Après conversion dans le type chaîne, la valeur NaN devient une chaîne égale à 'nan' et peut être facilement détectée et supprimée en la comparant à 'nan'.

L’exemple de code ci-dessous montre comment supprimer la valeur NaN de la liste de type de données chaîne:

mylist = [1, 2, "nan", 8, 6, 4, "nan"]
mylist = [str(x) for x in mylist]
print(mylist)
newlist = [x for x in mylist if x != "nan"]
print(newlist)

Production:

['1', '2', 'nan', '8', '6', '4', 'nan']
['1', '2', '8', '6', '4']

Supprimer NaN de la liste en Python en utilisant la méthode pandas.isnull()

pandas.isnull(obj) prend comme entrée un scalaire ou un tableau obj et renvoie True si la valeur est égale à NaN, None ou NaT; sinon, il renvoie False.

L’exemple de code montre comment utiliser la méthode pandas.isnull() pour supprimer les valeurs NaN de la liste de Python.

import pandas as pd

mylist = [1, 2, float("nan"), 8, float("nan"), 4, float("nan")]
print(mylist)
newlist = [x for x in mylist if pd.isnull(x) == False]
print(newlist)

Production:

[1, 2, nan, 8, nan, 4, nan]
[1, 2, 8, 4]

Supposons maintenant que nous ne connaissions pas le type de la liste ou si la liste contient les données de différents types de données. Dans ce cas, nous pouvons vérifier et supprimer les valeurs NaN et 'nan' de la liste en utilisant la méthode pandas.isnull() en comparant chaque valeur de la liste avec la valeur 'nan'.

On peut utiliser la méthode pandas.isnull() car, contrairement aux méthodes mentionnées précédemment, la méthode pandas.isnull() ne renvoie pas d’erreur si le type de données string est donné en entrée. On peut donc utiliser la méthode pandas.isnull() pour supprimer les valeurs NaN et 'nan' de la liste ou d’un tableau en Python.

L’exemple de code ci-dessous montre comment utiliser la méthode pandas.isnull() et la valeur 'nan' pour supprimer les valeurs NaN et 'nan' de la liste en Python.

import pandas as pd

mylist = ["John", 23, "nan", "New York", float("nan")]
print(mylist)
newlist = [x for x in mylist if pd.isnull(x) == False and x != "nan"]
print(newlist)

Production:

['John', 23, 'nan', 'New York', nan]
['John', 23, 'New York']

Article connexe - Python List