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