Diferencia entre isna () e isnull () en pandas

73

He estado usando pandas por bastante tiempo. Pero, no entendí cuál es la diferencia entre isna()y isnull()en los pandas. Y, lo que es más importante, cuál usar para identificar los valores faltantes en el marco de datos.

¿Cuál es la diferencia básica subyacente de cómo se detecta un valor como nao null?

Vaibhav Thakur
fuente
1
Las dos funciones son iguales. Ambos dan los valores faltantes.
Ankit Seth

Respuestas:

94

Pandas isna()vs isnull().

Estoy asumiendo que usted se refiere a pandas.DataFrame.isna()frente pandas.DataFrame.isnull(). No confundir con pandas.isnull(), que en contraste con los dos anteriores no es un método de la clase DataFrame.

¡Estos dos métodos DataFrame hacen exactamente lo mismo! Incluso sus documentos son idénticos. Incluso puedes confirmar esto en el código de los pandas .

Pero, ¿por qué dos métodos con nombres diferentes hacen lo mismo?

Esto se debe a que los marcos de datos de los pandas se basan en los marcos de datos de R. En R nay nullhay dos cosas separadas. Lea esta publicación para más información.

Sin embargo, en python, los pandas se construyen sobre numpy, que nonanull tiene ni valores. En cambio, numpy tiene NaNvalores (que significa "No es un número"). En consecuencia, los pandas también usan NaNvalores.

En breve

  • Para detectar NaNvalores de usos numpy np.isnan().

  • Para detectar NaNvalores, los pandas usan .isna()o .isnull().
    Los NaNvalores se heredan del hecho de que los pandas se crean sobre numpy, mientras que los nombres de las dos funciones se originan en los marcos de datos de R, cuya estructura y funcionalidad intentaron imitar.

Djib2011
fuente
3
Esto explica todo y sí, quería inferir 'pandas.DataFrame.isna ()' vs 'pandas.DataFrame.isnull ()'. Gracias por una explicación tan detallada.
Vaibhav Thakur