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