Identificación de valores nulos

Lo primero que debemos ser capaces de hacer es identificar y cuantificar los valores nulos. Con este objetivo, la librería NumPy incluye la función np.isnan() que devuelve una estructura del mismo tamaño que la que se pase como argumento, sustituyendo cada uno de sus valores por un booleano indicado si es o no un valor nulo. Por ejemplo, podríamos comprobar qué valores de la característica Age de Titanic son nulos y mostrar los 5 primeros:

np.isnan(titanic.age.values)[:5]
array([False, False, False, False, False])

En todo caso, la funcionalidad ofrecida por la librería Pandas resulta más cómoda. Así, por ejemplo, podemos identificar si los valores de una estructura Pandas son o no nulos usando los metodos .isna() o .isnull() -disponibles tanto para Series como para DataFrames-:

titanic.isna().head()
Identificación de valores nulos

El resultado devuelto es un DataFrame Pandas, por lo que podemos aplicarle el método .sum() para obtener el número de nulos por columna (los valores True se interpretan como 1 y los valores False como 0):

titanic.isna().sum()
survived         0
pclass           0
sex              0
age            177
sibsp            0
parch            0
fare             0
embarked         2
class            0
who              0
adult_male       0
deck           688
embark_town      2
alive            0
alone            0
dtype: int64

De hecho, el resultado anterior es, a su vez, una Serie Pandas, por lo que podemos volver a aplicar el método .sum() para obtener el número total de nulos en el DataFrame original:

titanic.isna().sum().sum()
869