Remover NaN da lista em Python
-
Remova
NaN
da lista em Python usando o métodomath.isnan()
-
Remova
NaN
da lista em Python usando o métodonumpy.isnan()
-
Remova
NaN
da lista de strings em Python -
Remova
NaN
da lista em Python usando o métodopandas.isnull()
Este tutorial examinará vários métodos para localizar e remover os valores NaN
da lista em Python. O valor NaN
na programação significa Not a Number
, o que significa que o valor da variável não é um número.
Se um valor NaN
ocorrer em un array ou lista, pode criar problemas e erros nos cálculos. Também examinaremos maneiras de remover os valores de string nan
da lista neste tutorial. Podemos remover os valores NaN
ou 'nan'
da lista, usando os seguintes métodos.
Remova NaN
da lista em Python usando o método math.isnan()
O método math.isan(value)
recebe um número value
como entrada e retorna True
se o value
é um valor NaN
e retorna False
caso contrário. Portanto, podemos verificar se existe um valor NaN
em uma lista ou matriz de números usando o método math.isnan()
.
Precisamos do método math.isnan()
porque if float('NaN') == float('NaN')
retorna False
em Python ou podemos dizer que dois valores NaN
não são iguais em Python . O código de exemplo a seguir demonstra como usar o método math.isnan()
para remover o valor NaN
da 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)
Resultado:
[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]
Remova NaN
da lista em Python usando o método numpy.isnan()
O método np.isnan(array)
toma o array
como entrada e retorna True
para o índice correspondente se for o valor NaN
e retorna False
caso contrário.
O código de exemplo a seguir demonstra como remover os valores NaN
da lista usando o 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)
Resultado:
[1, 2, nan, 8, 6, 4, nan]
[1, 2, 8, 6, 4]
Remova NaN
da lista de strings em Python
Agora, vamos supor que a lista de números seja convertida para o tipo string e queremos verificar se ela contém algum valor NaN
. Após a conversão para o tipo de string, o valor NaN
torna-se uma string igual a 'nan'
e pode ser facilmente detectado e removido comparando-o com 'nan'
.
O código de exemplo a seguir demonstra como podemos remover o valor NaN
da lista de tipo de dados de string:
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)
Resultado:
['1', '2', 'nan', '8', '6', '4', 'nan']
['1', '2', '8', '6', '4']
Remova NaN
da lista em Python usando o método pandas.isnull()
O pandas.isnull(obj)
toma um escalar ou um obj
semelhante a um array como entrada e retorna True
se o valor for igual a NaN
, None
ou NaT
; caso contrário, retorna False
.
O código de exemplo demonstra como usar o método pandas.isnull()
para remover os valores NaN
da lista do 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)
Resultado:
[1, 2, nan, 8, nan, 4, nan]
[1, 2, 8, 4]
Agora, suponha que não saibamos o tipo da lista ou se a lista contém os dados de vários tipos de dados. Neste caso, podemos verificar e remover os valores NaN
e 'nan'
da lista usando o método pandas.isnull()
comparando cada valor da lista com o valor 'nan'
.
Podemos usar o método pandas.isnull()
porque, ao contrário dos métodos mencionados anteriormente, o método pandas.isnull()
não retorna um erro se o tipo de dados string for fornecido como entrada. Portanto, podemos usar o método pandas.isnull()
para remover os valores NaN
e 'nan'
da lista ou um array em Python.
O código de exemplo a seguir demonstra como usar o método pandas.isnull()
e o valor 'nan'
para remover os valores NaN
e 'nan'
da lista em 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)
Resultado:
['John', 23, 'nan', 'New York', nan]
['John', 23, 'New York']