Pandas isna()
vs isnull()
.
Estou assumindo que você está se referindo a pandas.DataFrame.isna()
vs pandas.DataFrame.isnull()
. Para não confundir pandas.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
e null
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ãona
null
tem nem valores. Em vez disso, numpy possui NaN
valores (que significa "Não é um número"). Consequentemente, os pandas também usam NaN
valores.
Em resumo
Para detectar NaN
valores que um numpy usa np.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.