Como contar as ocorrências de NaN em uma coluna em Pandas Dataframe
-
Método
isna()
para contarNaN
em uma ou múltiplas colunas -
Subtrair a contagem de ocorrências
não-NaN
do comprimento total para a contagem de ocorrênciasNaN
-
df.isull().sum()
Método para contarNaN
Ocorrências -
Contar
NaN
Ocorrências nos Pandas inteirosDataFrame
Introduziremos os métodos para contar as ocorrências NaN
em uma coluna no Pandas DataFrame
. Temos muitas soluções, incluindo o método isna()
para uma ou várias colunas, subtraindo o comprimento total da contagem de ocorrências NaN
, utilizando o método value_counts
e utilizando o método df.isull().sum()
.
Também vamos introduzir o método para calcular o número total de ocorrências de NaN
em todo o Pandas DataFrame
.
Método isna()
para contar NaN
em uma ou múltiplas colunas
Podemos utilizar o método insna()
(versões pandas > 0.21.0) e depois somar para contar as ocorrências NaN
. Para uma coluna, faremos o seguinte:
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
Resultado:
2
Para várias colunas, também funciona:
import pandas as pd
df = pd.DataFrame({"a": [1, 2, np.nan], "b": [np.nan, 1, np.nan]})
df.isna().sum()
Resultado:
a 1
b 2
dtype: int64
Subtrair a contagem de ocorrências não-NaN
do comprimento total para a contagem de ocorrências NaN
Podemos obter o número de ocorrências NaN
em cada coluna subtraindo a contagem de ocorrências non-Nan
do comprimento do 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())
Resultado:
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 NaN
Ocorrências
Podemos obter o número de ocorrências NaN
em cada coluna utilizando o método df.isull().sum()
. Se passarmos o axis=0
dentro do método sum
, ele nos dará o número de ocorrências NaN
em cada coluna. Se precisarmos de NaN
ocorrências em cada linha, defina axis=1
.
Códigos de exemplo:
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))
Resultado:
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
Contar NaN
Ocorrências nos Pandas inteiros DataFrame
Para obter o número total de todas as ocorrências NaN
no DataFrame
, nós encadeamos dois métodos .sum()
juntos:
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())
Resultado:
NaN occurrences in DataFrame:
6
Artigo relacionado - Pandas DataFrame
- Como obter os cabeçalhos da coluna Pandas DataFrame como uma lista
- Como eliminar a coluna Pandas DataFrame
- Como Converter a Coluna DataFrame para DataTempo em Pandas
- Como Converter um Flutuador em um Inteiro em Pandas DataFrame
- Como Classificar Pandas DataFrame pelos Valores de uma Coluna
- Como Obter o Agregado de Pandas Group-By e Sum