En este artículo, veremos cómo contar NaN o valores faltantes en Pandas DataFrame usando un método de DataFrame isnull()
.sum()
Método Dataframe.isnull()
La función Pandas isnull()
detecta valores faltantes en el objeto dado. Devuelve un objeto booleano del mismo tamaño que indica si los valores son NA. Los valores que faltan se asignan a True y los valores que no faltan se asignan a False.
Sintaxis: DataFrame.isnull()
Parámetros: Ninguno
Tipo de devolución: marco de datos de valores booleanos que son verdaderos para valores NaN; de lo contrario, son falsos.
método dataframe.sum()
La función Pandas sum()
devuelve la suma de los valores para el eje solicitado. Si la entrada es el eje de índice, agrega todos los valores en una columna y repite lo mismo para todas las columnas y devuelve una serie que contiene la suma de todos los valores en cada columna. También proporciona soporte para omitir los valores que faltan al calcular.
Sintaxis: DataFrame.sum(axis=Ninguno, skipna=Ninguno, level=Ninguno, numeric_only=Ninguno, min_count=0, **kwargs)
Parámetros:
- eje: {índice (0), columnas (1)}
- skipna : Excluye NA/valores nulos al calcular el resultado.
- nivel : si el eje es un índice múltiple (jerárquico), cuente a lo largo de un nivel particular, colapsando en una serie
- numeric_only : incluye solo columnas flotantes, int y booleanas. Si es Ninguno, intentará usar todo, luego use solo datos numéricos. No implementado para Serie.
- min_count : El número requerido de valores válidos para realizar la operación. Si están presentes menos de min_count valores no NA, el resultado será NA.
Devuelve: suma de Series o DataFrame (si se especifica el nivel).
Vamos a crear un marco de datos de pandas.
# import numpy library as np import numpy as np # import pandas library as pd import pandas as pd # List of Tuples students = [('Ankit', 22, 'Up', 'Geu'), ('Ankita', np.NaN, 'Delhi', np.NaN), ('Rahul', 16, 'Tokyo', 'Abes'), ('Simran', 41, 'Delhi', 'Gehu'), ('Shaurya', np.NaN, 'Delhi', 'Geu'), ('Shivangi', 35, 'Mumbai', np.NaN ), ('Swapnil', 35, np.NaN, 'Geu'), (np.NaN, 35, 'Uk', 'Geu'), ('Jeet', 35, 'Guj', 'Gehu'), (np.NaN, np.NaN, np.NaN, np.NaN) ] # Create a DataFrame object from # list of tuples with columns # and indices. details = pd.DataFrame(students, columns =['Name', 'Age', 'Place', 'College'], index =['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'j', 'k']) details
Producción:
Ejemplo 1: cuente el total de NaN en cada columna en DataFrame.
# import numpy library as np import numpy as np # import pandas library as pd import pandas as pd # List of Tuples students = [('Ankit', 22, 'Up', 'Geu'), ('Ankita', np.NaN, 'Delhi', np.NaN), ('Rahul', 16, 'Tokyo', 'Abes'), ('Simran', 41, 'Delhi', 'Gehu'), ('Shaurya', np.NaN, 'Delhi', 'Geu'), ('Shivangi', 35, 'Mumbai', np.NaN ), ('Swapnil', 35, np.NaN, 'Geu'), (np.NaN, 35, 'Uk', 'Geu'), ('Jeet', 35, 'Guj', 'Gehu'), (np.NaN, np.NaN, np.NaN, np.NaN) ] # Create a DataFrame object from list of tuples # with columns and indices. details = pd.DataFrame(students, columns =['Name', 'Age', 'Place', 'College'], index =['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'j', 'k']) # show the boolean dataframe print(" \nshow the boolean Dataframe : \n\n", details.isnull()) # Count total NaN at each column in a DataFrame print(" \nCount total NaN at each column in a DataFrame : \n\n", details.isnull().sum())
Producción:
Ejemplo 2: Cuente el total de NaN en cada fila en DataFrame.
# import numpy library as np import numpy as np # import pandas library as pd import pandas as pd # List of Tuples students = [('Ankit', 22, 'Up', 'Geu'), ('Ankita', np.NaN, 'Delhi', np.NaN), ('Rahul', 16, 'Tokyo', 'Abes'), ('Simran', 41, 'Delhi', 'Gehu'), ('Shaurya', np.NaN, 'Delhi', 'Geu'), ('Shivangi', 35, 'Mumbai', np.NaN ), ('Swapnil', 35, np.NaN, 'Geu'), (np.NaN, 35, 'Uk', 'Geu'), ('Jeet', 35, 'Guj', 'Gehu'), (np.NaN, np.NaN, np.NaN, np.NaN) ] # Create a DataFrame object from # list of tuples with columns # and indices. details = pd.DataFrame(students, columns =['Name', 'Age', 'Place', 'College'], index =['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'j', 'k']) # show the boolean dataframe print(" \nshow the boolean Dataframe : \n\n", details.isnull()) # index attribute of a dataframe # gives index list # Count total NaN at each row in a DataFrame for i in range(len(details.index)) : print(" Total NaN in row", i + 1, ":", details.iloc[i].isnull().sum())
Producción:
Ejemplo 3: Cuente el total de NaN en DataFrame.
# import numpy library as np import numpy as np # import pandas library as pd import pandas as pd # List of Tuples students = [('Ankit', 22, 'Up', 'Geu'), ('Ankita', np.NaN, 'Delhi', np.NaN), ('Rahul', 16, 'Tokyo', 'Abes'), ('Simran', 41, 'Delhi', 'Gehu'), ('Shaurya', np.NaN, 'Delhi', 'Geu'), ('Shivangi', 35, 'Mumbai', np.NaN ), ('Swapnil', 35, np.NaN, 'Geu'), (np.NaN, 35, 'Uk', 'Geu'), ('Jeet', 35, 'Guj', 'Gehu'), (np.NaN, np.NaN, np.NaN, np.NaN) ] # Create a DataFrame object from # list of tuples with columns # and indices. details = pd.DataFrame(students, columns =['Name', 'Age', 'Place', 'College'], index =['a', 'b', 'c', 'd', 'e', 'f', 'g', 'i', 'j', 'k']) # show the boolean dataframe print(" \nshow the boolean Dataframe : \n\n", details.isnull()) # Count total NaN in a DataFrame print(" \nCount total NaN in a DataFrame : \n\n", details.isnull().sum().sum())
Producción: