Eu tenho usado pandas por algum tempo. Mas não entendi qual é a diferença entre isna()
e isnull()
nos pandas. E, mais importante, qual usar para identificar valores ausentes no quadro de dados.
Qual é a diferença básica subjacente de como um valor é detectado como um na
ou outro null
?
Respostas:
Pandas
isna()
vsisnull()
.Estou assumindo que você está se referindo a
pandas.DataFrame.isna()
vspandas.DataFrame.isnull()
. Para não confundirpandas.isnull()
, o que, ao contrário dos dois acima, não é um método da classe DataFrame.Esses dois métodos DataFrame fazem exatamente a mesma coisa! Até seus documentos são idênticos. Você pode até confirmar isso no código dos pandas .
Mas por que dois métodos com nomes diferentes fazem a mesma coisa?
Isso ocorre porque os DataFrames dos pandas são baseados nos DataFrames de R. Em R
na
enull
são duas coisas separadas. Leia este post para mais informações.No entanto, em python, os pandas são criados em cima de numpy, que não
na
null
tem nem valores. Em vez disso, numpy possuiNaN
valores (que significa "Não é um número"). Consequentemente, os pandas também usamNaN
valores.Em resumo
Para detectar
NaN
valores que um numpy usanp.isnan()
.Para detectar
NaN
valores, o pandas usa.isna()
ou.isnull()
.Os
NaN
valores são herdados do fato de os pandas serem construídos sobre o numpy, enquanto os nomes das duas funções são originários dos DataFrames de R, cuja estrutura e funcionalidade os pandas tentaram imitar.fonte