Eliminar NaN de la lista en Python
-
Elimine
NaN
de la lista en Python utilizando el métodomath.isnan()
-
Elimine
NaN
de la lista en Python usando el métodonumpy.isnan()
-
Eliminar
NaN
de la lista de cadenas en Python -
Elimine
NaN
de la lista en Python utilizando el métodopandas.isnull()
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
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python