HOWTO · Pandas
Como contar as ocorrências de NaN em uma coluna em Pandas Dataframe
Este tutorial demonstra como contar as ocorrências de NaN em uma coluna em Pandas Dataframe usando diferentes métodos como isna() e df.isull().sum().
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