Cómo contar las ocurrencias de NaN en una columna en Pandas Dataframe
-
isna()método para contarNaNen una o varias columnas -
Restar el conteo de
non-NaNde la longitud total para contar las ocurrencias deNaN -
df.isull().sum()método para contar las ocurrenciasNaN -
Cuenta las ocurrencias
NaNen elDataFramecompleto de Pandas
Introduciremos los métodos para contar las ocurrencias de NaN en una columna del Pandas DataFrame. Tenemos muchas soluciones, incluyendo el método isna() para una o varias columnas, restando la longitud total del recuento de las ocurrencias NaN, usando el método value_counts y usando el método df.isull().sum().
También introduciremos el método para calcular el número total de ocurrencias NaN en todo el Pandas DataFrame.
isna() método para contar NaN en una o varias columnas
Podemos usar el método insna() (versiones de pandas > 0.21.0) y luego sumar para contar las ocurrencias NaN. Para una columna haremos lo siguiente:
import pandas as pd
s = pd.Series([1, 2, 3, np.nan, np.nan])
s.isna().sum()
# or s.isnull().sum() for older pandas versions
Producción :
2
Para varias columnas, también funciona:
import pandas as pd
df = pd.DataFrame({"a": [1, 2, np.nan], "b": [np.nan, 1, np.nan]})
df.isna().sum()
Producción :
a 1
b 2
dtype: int64
Restar el conteo de non-NaN de la longitud total para contar las ocurrencias de NaN
Podemos obtener el número de ocurrencias de NaN en cada columna restando el número de ocurrencias de non-Nan de la longitud del DataFrame:
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, None, 7), (5, None, None)],
columns=["a", "b", "d"],
index=["A", "B", "C", "D"],
)
print(df)
print(len(df) - df.count())
Producción :
a b d
A 1.0 2.0 NaN
B NaN 4.0 NaN
C 5.0 NaN 7.0
D 5.0 NaN NaN
a 1
b 2
d 3
dtype: int64
df.isull().sum() método para contar las ocurrencias NaN
Podemos obtener el número de ocurrencias de NaN en cada columna usando el método df.isull().sum(). Si pasamos el axis=0 dentro del método sum, nos dará el número de ocurrencias NaN en cada columna. Si necesitamos que aparezcan NaN en cada fila, ponemos axis=1.
Considera el siguiente código:
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, None, 7), (5, None, None)],
columns=["a", "b", "d"],
index=["A", "B", "C", "D"],
)
print("NaN occurrences in Columns:")
print(df.isnull().sum(axis=0))
print("NaN occurrences in Rows:")
print(df.isnull().sum(axis=1))
Producción :
NaN occurrences in Columns:
a 1
b 2
d 3
dtype: int64
NaN occurrences in Rows:
A 1
B 2
C 1
D 2
dtype: int64
Cuenta las ocurrencias NaN en el DataFrame completo de Pandas
Para obtener el número total de todas las ocurrencias de NaN en el DataFrame, encadenamos dos métodos .sum():
import pandas as pd
df = pd.DataFrame(
[(1, 2, None), (None, 4, None), (5, None, 7), (5, None, None)],
columns=["a", "b", "d"],
index=["A", "B", "C", "D"],
)
print("NaN occurrences in DataFrame:")
print(df.isnull().sum().sum())
Producción :
NaN occurrences in DataFrame:
6
Artículo relacionado - Pandas DataFrame
- Cómo obtener las cabeceras de columna de Pandas DataFrame como una lista
- Cómo borrar la columna de Pandas DataFrame
- Cómo convertir la columna del DataFrame a Datetime en Pandas
- Cómo convertir un float en un entero en Pandas DataFrame
- Cómo clasificar Pandas DataFrame por los valores de una columna
- Cómo obtener el agregado de Pandas grupo por y suma