Pandas : Comment utiliser dropna() avec thresh



Vous pouvez utiliser la fonction dropna() pour supprimer les lignes d’un DataFrame pandas qui contiennent des valeurs manquantes.

Vous pouvez également utiliser l’argument thresh pour spécifier le nombre minimum de valeurs non NaN qu’une ligne ou une colonne doit avoir pour être conservée dans le DataFrame.

Voici les manières les plus courantes d’utiliser l’argument seuil dans la pratique :

Méthode 1 : conserver uniquement les lignes avec un nombre minimum de valeurs non NaN

#only keep rows with at least 2 non-NaN values
df.dropna(thresh=2)

Méthode 2 : conserver uniquement les lignes avec un pourcentage minimum de valeurs non NaN

#only keep rows with at least 70% non-NaN values
df.dropna(thresh=0.7*len(df.columns))

Méthode 3 : conserver uniquement les colonnes avec un nombre minimum de valeurs non NaN

#only keep columns with at least 6 non-NaN values
df.dropna(thresh=6, axis=1)

Méthode 4 : conserver uniquement les colonnes avec un pourcentage minimum de valeurs non NaN

#only keep columns with at least 70% non-NaN values
df.dropna(thresh=0.7*len(df), axis=1)

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, np.nan, 19, 14, 14, 11, 20, np.nan],
                   'assists': [5, np.nan, np.nan, 9, np.nan, 9, 9, 4],
                   'rebounds': [11, np.nan, 10, 6, 6, 5, 9, np.nan]})

#view DataFrame
print(df)

  team  points  assists  rebounds
0    A    18.0      5.0      11.0
1    B     NaN      NaN       NaN
2    C    19.0      NaN      10.0
3    D    14.0      9.0       6.0
4    E    14.0      NaN       6.0
5    F    11.0      9.0       5.0
6    G    20.0      9.0       9.0
7    H     NaN      4.0       NaN

Exemple 1 : conserver uniquement les lignes avec un nombre minimum de valeurs non NaN

Nous pouvons utiliser la syntaxe suivante pour conserver uniquement les lignes du DataFrame qui ont au moins 2 valeurs non NaN :

#only keep rows with at least 2 non-NaN values
df.dropna(thresh=2)

	team	points	assists	rebounds
0	A	18.0	5.0	11.0
2	C	19.0	NaN	10.0
3	D	14.0	9.0	6.0
4	E	14.0	NaN	6.0
5	F	11.0	9.0	5.0
6	G	20.0	9.0	9.0
7	H	NaN	4.0	NaN

Notez que la ligne en position d’index 1 a été supprimée car elle n’avait qu’une seule valeur non NaN dans toute la ligne.

Exemple 2 : conserver uniquement les lignes avec un pourcentage minimum de valeurs non NaN

Nous pouvons utiliser la syntaxe suivante pour conserver uniquement les lignes du DataFrame qui ont au moins 70 % de valeurs non NaN :

#only keep rows with at least 70% non-NaN values
df.dropna(thresh=0.7*len(df.columns))

        team	points	assists	rebounds
0	A	18.0	5.0	11.0
2	C	19.0	NaN	10.0
3	D	14.0	9.0	6.0
4	E	14.0	NaN	6.0
5	F	11.0	9.0	5.0
6	G	20.0	9.0	9.0

Notez que les lignes aux positions d’index 1 et 7 ont été supprimées car ces lignes ne contenaient pas au moins 70 % des valeurs sous forme de valeurs non NaN.

Exemple 3 : conserver uniquement les colonnes avec un nombre minimum de valeurs non NaN

Nous pouvons utiliser la syntaxe suivante pour conserver uniquement les colonnes du DataFrame qui ont au moins 6 valeurs non NaN :

#only keep columns with at least 6 non-NaN values
df.dropna(thresh=6, axis=1)

        team	points	rebounds
0	A	18.0	11.0
1	B	NaN	NaN
2	C	19.0	10.0
3	D	14.0	6.0
4	E	14.0	6.0
5	F	11.0	5.0
6	G	20.0	9.0
7	H	NaN	NaN

Notez que la colonne « assistances » a été supprimée car cette colonne ne contenait pas au moins 6 valeurs non NaN dans la colonne.

Exemple 4 : conserver uniquement les colonnes avec un pourcentage minimum de valeurs non NaN

Nous pouvons utiliser la syntaxe suivante pour conserver uniquement les colonnes du DataFrame qui ont au moins 70 % de valeurs non NaN :

#only keep columns with at least 70% non-NaN values
df.dropna(thresh=0.7*len(df), axis=1)

        team	points	rebounds
0	A	18.0	11.0
1	B	NaN	NaN
2	C	19.0	10.0
3	D	14.0	6.0
4	E	14.0	6.0
5	F	11.0	5.0
6	G	20.0	9.0
7	H	NaN	NaN

Notez que la colonne « assistance » a été supprimée car cette colonne ne contenait pas au moins 70 % de valeurs non NaN.

Remarque : Vous pouvez trouver la documentation complète de la fonction pandas dropna() ici .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Pandas : Comment réinitialiser l’index après avoir utilisé dropna()
Pandas : comment utiliser dropna() avec des colonnes spécifiques
Pandas : Comment supprimer des lignes en fonction de plusieurs conditions

Ajouter un commentaire

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