¿Cómo contar la cantidad de valores de NaN en Pandas?

Es posible que necesitemos contar la cantidad de valores de NaN para cada característica en el conjunto de datos para que podamos decidir cómo manejarlo. Por ejemplo, si el número de valores faltantes es bastante bajo, entonces podemos optar por descartar esas observaciones; o puede haber una columna en la que falten muchas entradas, por lo que podemos decidir si incluir o no esa variable.

Método 1: Usar describe()

Podemos usar el método describe() que devuelve una tabla que contiene detalles sobre el conjunto de datos. La propiedad de conteo proporciona directamente el conteo de valores que no son NaN en cada columna. Entonces, podemos obtener el conteo de valores de NaN, si conocemos el número total de observaciones.

import pandas as pd 
import numpy as np
    
# dictionary of lists 
dict = { 'A':[1, 4, 6, 9], 
        'B':[np.NaN, 5, 8, np.NaN], 
        'C':[7, 3, np.NaN, 2],
        'D':[1, np.NaN, np.NaN, np.NaN] } 
  
# creating dataframe from the
# dictionary 
data = pd.DataFrame(dict) 
    
data.describe()

Producción :

pandas-count-nan-1

Método 2: usar sum()
La función isnull() devuelve un conjunto de datos que contiene valores verdaderos y falsos. Dado que True se trata como 1 y False como 0, llamar al método sum() en la serie isnull() devuelve el recuento de valores True que en realidad corresponde al número de valores NaN.

Contando NaN en una columna:

Simplemente podemos encontrar los valores nulos en la columna deseada y luego obtener la suma.

import pandas as pd
import numpy as np
    
# dictionary of lists 
dict = { 'A':[1, 4, 6, 9], 
        'B':[np.NaN, 5, 8, np.NaN], 
        'C':[7, 3, np.NaN, 2],
        'D':[1, np.NaN, np.NaN, np.NaN] } 
    
# creating dataframe from the
# dictionary 
data = pd.DataFrame(dict) 
  
# total NaN values in column 'B'
print(data['B'].isnull().sum())

Producción :

2

Contando NaN en una fila:

La fila se puede seleccionar usando loc o iloc . Entonces encontramos la suma como antes.

import pandas as pd 
import numpy as np
    
# dictionary of lists 
dict = { 'A':[1, 4, 6, 9],
        'B':[np.NaN, 5, 8, np.NaN], 
        'C':[7, 3, np.NaN, 2],
        'D':[1, np.NaN, np.NaN, np.NaN] }   
    
# creating dataframe from the 
# dictionary 
data = pd.DataFrame(dict) 
  
# total NaN values in row index 1
print(data.loc[1, :].isnull().sum())

Producción :

1

Contar NaN en todo el marco de datos:
para contar NaN en todo el conjunto de datos, solo necesitamos llamar a la función sum() dos veces, una para obtener el conteo en cada columna y otra para encontrar la suma total de todas las columnas.

import pandas as pd 
import numpy as np
    
# dictionary of lists 
dict = {'A':[1, 4, 6, 9],
        'B':[np.NaN, 5, 8, np.NaN],
        'C':[7, 3, np.NaN, 2],
        'D':[1, np.NaN, np.NaN, np.NaN]} 
    
# creating dataframe from the
# dictionary 
data = pd.DataFrame(dict) 
  
# total count of NaN values
print(data.isnull().sum().sum())

Producción :

6

Publicación traducida automáticamente

Artículo escrito por cosine1509 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *