Comment compter les occurrences de NaN dans une colonne de Pandas Dataframe
-
Méthode
isna()pour compter leNaNdans une ou plusieurs colonnes -
Soustraire le nombre de
non-NaNde la longueur totale pour compter les occurrences deNaN -
Méthode
df.isull().sum()pour compter les occurrencesNaN -
Comptez les occurrences de
NaNdans 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