Eliminar NaN de la lista en Python

Muhammad Waiz Khan 30 enero 2023
  1. Elimine NaN de la lista en Python utilizando el método math.isnan()
  2. Elimine NaN de la lista en Python usando el método numpy.isnan()
  3. Eliminar NaN de la lista de cadenas en Python
  4. Elimine NaN de la lista en Python utilizando el método pandas.isnull()
Eliminar NaN de la lista en Python

Este tutorial buscará varios métodos para encontrar y eliminar los valores de NaN de la lista en Python. El valor NaN en programación significa Not a Number, lo que significa que el valor de la variable no es un número.

Si aparece un valor NaN en un array o una lista, puede crear problemas y errores en los cálculos. También buscaremos formas de eliminar los valores de cadena nan de la lista de este tutorial. Podemos eliminar los valores NaN o 'nan' de la lista, utilizando los siguientes métodos.

Elimine NaN de la lista en Python utilizando el método math.isnan()

El método math.isnan(value) toma un número value como entrada y devuelve True si el value es un valor NaN y devuelve False en caso contrario. Por tanto, podemos comprobar si hay un valor NaN en una lista o matriz de números utilizando el método math.isnan().

Necesitamos el método math.isnan() porque if float('NaN') == float('NaN') devuelve False en Python o podemos decir que dos valores de NaN no son iguales en Python. El siguiente código de ejemplo demuestra cómo utilizar el método math.isnan() para eliminar el valor NaN de la lista.

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)

Producción :

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

Elimine NaN de la lista en Python usando el método numpy.isnan()

El método np.isnan(array), toma la array como entrada y devuelve True para el índice correspondiente si es un valor NaN y devuelve False en caso contrario.

El siguiente código de ejemplo demuestra cómo eliminar los valores NaN de la lista utilizando el método 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)

Producción :

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

Eliminar NaN de la lista de cadenas en Python

Ahora, supongamos que la lista de números se convierte al tipo de cadena y queremos comprobar si contiene algún valor NaN. Después de convertir al tipo de cadena, el valor NaN se convierte en una cadena igual a 'nan' y se puede detectar y eliminar fácilmente comparándola con 'nan'.

El siguiente código de ejemplo demuestra cómo podemos eliminar el valor NaN de la lista de tipos de datos de cadena:

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)

Producción :

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

Elimine NaN de la lista en Python utilizando el método pandas.isnull()

El pandas.isnull(obj) toma un obj escalar o similar a un array como entrada y devuelve True si el valor es igual a NaN, None o NaT; de lo contrario, devuelve False.

El código de ejemplo demuestra cómo utilizar el método pandas.isnull() para eliminar los valores NaN de la lista 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)

Producción :

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

Ahora suponga que no conocemos el tipo de lista o si la lista contiene los datos de varios tipos de datos. En este caso, podemos comprobar y eliminar los valores NaN y los valores 'nan' de la lista usando el método pandas.isnull() comparando cada valor de la lista con el valor 'nan'.

Podemos usar el método pandas.isnull() porque, a diferencia de los métodos mencionados anteriormente, el método pandas.isnull() no devuelve un error si el tipo de datos de cadena se da como entrada. Por lo tanto, podemos usar el método pandas.isnull() para eliminar el valor NaN y 'nan' de la lista o un array en Python.

El siguiente código de ejemplo demuestra cómo utilizar el método pandas.isnull() y el valor 'nan' para eliminar los valores NaN y 'nan' de la lista 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)

Producción :

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

Artículo relacionado - Python List