Personnaliser les préférences

Nous utilisons des cookies pour vous aider à naviguer efficacement et à exécuter certaines fonctions. Vous trouverez ci-dessous des informations détaillées sur tous les cookies sous chaque catégorie de consentement.

Les cookies classés comme « Nécessaires » sont stockés sur votre navigateur car ils sont essentiels pour activer les fonctionnalités de base du site.... 

Toujours actif

Necessary cookies are required to enable the basic features of this site, such as providing secure log-in or adjusting your consent preferences. These cookies do not store any personally identifiable data.

Aucun cookie à afficher.

Functional cookies help perform certain functionalities like sharing the content of the website on social media platforms, collecting feedback, and other third-party features.

Aucun cookie à afficher.

Analytical cookies are used to understand how visitors interact with the website. These cookies help provide information on metrics such as the number of visitors, bounce rate, traffic source, etc.

Aucun cookie à afficher.

Performance cookies are used to understand and analyze the key performance indexes of the website which helps in delivering a better user experience for the visitors.

Aucun cookie à afficher.

Advertisement cookies are used to provide visitors with customized advertisements based on the pages you visited previously and to analyze the effectiveness of the ad campaigns.

Aucun cookie à afficher.

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 *