Como contar as ocorrências de NaN em uma coluna em Pandas Dataframe
-
Método
isna()para contarNaNem uma ou múltiplas colunas -
Subtrair a contagem de ocorrências
não-NaNdo comprimento total para a contagem de ocorrênciasNaN -
df.isull().sum()Método para contarNaNOcorrências -
Contar
NaNOcorrê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