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

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *