Cómo contar las ocurrencias de NaN en una columna en Pandas Dataframe
-
isna()
método para contarNaN
en una o varias columnas -
Restar el conteo de
non-NaN
de la longitud total para contar las ocurrencias deNaN
-
df.isull().sum()
método para contar las ocurrenciasNaN
-
Cuenta las ocurrencias
NaN
en elDataFrame
completo 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