Comment compter les occurrences de NaN dans une colonne de Pandas Dataframe
-
Méthode
isna()
pour compter leNaN
dans une ou plusieurs colonnes -
Soustraire le nombre de
non-NaN
de la longueur totale pour compter les occurrences deNaN
-
Méthode
df.isull().sum()
pour compter les occurrencesNaN
-
Comptez les occurrences de
NaN
dans l’ensemble de la PandasDataFrame

Nous allons présenter les méthodes pour compter les occurrences de NaN
dans une colonne du Pandas DataFrame
. Nous avons plusieurs solutions, y compris la méthode isna()
pour une ou plusieurs colonnes, en soustrayant la longueur totale du nombre d’occurrences de NaN
, en utilisant la méthode value_counts et en utilisant la méthode df.isull().sum()
.
Nous allons également introduire la méthode permettant de calculer le nombre total d’occurrences de NaN
dans l’ensemble de la Pandas DataFrame
.
Méthode isna()
pour compter le NaN
dans une ou plusieurs colonnes
Nous pouvons utiliser la méthode insna()
(versions pandas > 0.21.0) et ensuite faire la somme pour compter les occurrences NaN
. Pour une colonne, nous ferons comme suit:
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
Production:
2
Pour plusieurs colonnes, cela fonctionne également:
import pandas as pd
df = pd.DataFrame({
'a':[1,2,np.nan],
'b':[np.nan,1,np.nan]})
df.isna().sum()
Production:
a 1
b 2
dtype: int64
Soustraire le nombre de non-NaN
de la longueur totale pour compter les occurrences de NaN
Nous pouvons obtenir le nombre d’occurrences NaN
dans chaque colonne en soustrayant le nombre d’occurrences non-Nan
de la longueur de 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())
Production:
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
Méthode df.isull().sum()
pour compter les occurrences NaN
Nous pouvons obtenir le nombre d’occurrences de NaN
dans chaque colonne en utilisant la méthode df.isull().sum()
. Si nous avons passé axis=0
dans la méthode sum
, cela donnera le nombre d’occurrences de NaN
dans chaque colonne. Si nous avons besoin d’occurrences de NaN
dans chaque ligne, définissez axis=1
.
Considérez le code suivant:
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))
Production:
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
Comptez les occurrences de NaN
dans l’ensemble de la Pandas DataFrame
Pour obtenir le nombre total de toutes les occurrences de NaN
dans le DataFrame
, nous enchaînons deux méthodes .sum()
ensemble:
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())
Production:
NaN occurrences in DataFrame:
6
Article connexe - Pandas DataFrame
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme