Comment utiliser « N’est pas nul » ? dans Pandas (avec exemples)
Vous pouvez utiliser la fonction pandas notnull() pour tester si les éléments d’un pandas DataFrame sont nuls ou non.
Si un élément est égal à NaN ou None, alors la fonction retournera False .
Sinon, la fonction retournera True .
Voici plusieurs manières courantes d’utiliser cette fonction dans la pratique :
Méthode 1 : filtrer les lignes sans valeurs nulles dans aucune colonne
df[df.notnull().all(1)]
Méthode 2 : filtrer les lignes sans valeurs nulles dans une colonne spécifique
df[df[['this_column']].notnull().all(1)]
Méthode 3 : compter le nombre de valeurs non nulles dans chaque colonne
df.notnull().sum()
Méthode 4 : compter le nombre de valeurs non nulles dans l’ensemble du DataFrame
df.notnull().sum().sum()
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :
import pandas as pd import numpy as np #create DataFrame df = pd.DataFrame({'team': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], 'points': [18, 22, 19, 14, 14, 11, 20, np.nan], 'assists': [5, np.nan, 7, 9, 12, 9, 9, np.nan], 'rebounds': [11, 8, 10, 6, 6, 5, np.nan, 12]}) #view DataFrame print(df) team points assists rebounds 0 A 18.0 5.0 11.0 1 B 22.0 NaN 8.0 2 C 19.0 7.0 10.0 3 D 14.0 9.0 6.0 4 E 14.0 12.0 6.0 5 F 11.0 9.0 5.0 6 G 20.0 9.0 NaN 7 H NaN NaN 12.0
Exemple 1 : Filtrer les lignes sans valeurs nulles dans aucune colonne
Le code suivant montre comment filtrer le DataFrame pour afficher uniquement les lignes sans valeurs nulles dans aucune colonne :
#filter for rows with no null values in any column
df[df.notnull().all(1)]
team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 7.0 10.0
3 D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
Notez que chacune des lignes de ce DataFrame filtré n’a aucune valeur nulle dans aucune colonne.
Exemple 2 : Filtrer les lignes sans valeurs nulles dans une colonne spécifique
Le code suivant montre comment filtrer le DataFrame pour afficher uniquement les lignes sans valeurs nulles dans la colonne d’assistance :
#filter for rows with no null values in the 'assists' column
df[df[['assists']].notnull().all(1)]
team points assists rebounds
0 A 18.0 5.0 11.0
2 C 19.0 7.0 10.0
3 D 14.0 9.0 6.0
4 E 14.0 12.0 6.0
5 F 11.0 9.0 5.0
6 G 20.0 9.0 NaN
Notez que chacune des lignes de ce DataFrame filtré n’a aucune valeur nulle dans la colonne d’assistance .
Exemple 3 : Compter le nombre de valeurs non nulles dans chaque colonne
Le code suivant montre comment compter le nombre de valeurs non nulles dans chaque colonne du DataFrame :
#count number of non-null values in each column
df.notnull().sum()
team 8
points 7
assists 6
rebounds 7
dtype: int64
À partir du résultat, nous pouvons voir :
- La colonne équipe comporte 8 valeurs non nulles.
- La colonne des points comporte 7 valeurs non nulles.
- La colonne des passes décisives comporte 6 valeurs non nulles.
- La colonne rebonds comporte 7 valeurs non nulles.
Exemple 4 : compter le nombre de valeurs non nulles dans l’ensemble du DataFrame
Le code suivant montre comment compter le nombre de valeurs non nulles dans l’ensemble du DataFrame :
#count number of non-null values in entire DataFrame
df.notnull().sum().sum()
28
À partir de la sortie, nous pouvons voir qu’il y a 28 valeurs non nulles dans l’ensemble du DataFrame.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations de filtrage courantes dans les pandas :
Comment filtrer un DataFrame Pandas par valeurs de colonne
Comment filtrer « Ne contient pas » dans Pandas
Comment filtrer un DataFrame Pandas sur plusieurs conditions