Comment compter les occurrences de NaN dans une colonne de Pandas Dataframe

  1. Méthode isna() pour compter le NaN dans une ou plusieurs colonnes
  2. Soustraire le nombre de non-NaN de la longueur totale pour compter les occurrences de NaN
  3. Méthode df.isull().sum() pour compter les occurrences NaN
  4. Comptez les occurrences de NaN dans l’ensemble de la dataframe de Pandas

Nous allons présenter les méthodes pour compter les occurrences de NaN dans une colonne du dataframe de Pandas. 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 dataframe de Pandas.

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é axe=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 dataframe de Pandas

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 supprimer une ligne en fonction de la valeur de la colonne dans Pandas DataFrame
  • Comment convertir Pandas Dataframe en Numpy array