Pandas : comment supprimer des lignes contenant une valeur spécifique
Vous pouvez utiliser la syntaxe suivante pour supprimer des lignes dans un DataFrame pandas qui contiennent une valeur spécifique dans une certaine colonne :
#drop rows that contain specific 'value' in 'column_name' df = df[df.column_name != value]
Vous pouvez utiliser la syntaxe suivante pour supprimer des lignes dans un DataFrame pandas qui contiennent n’importe quelle valeur dans une certaine liste :
#define values values = [value1, value2, value3, ...] #drop rows that contain any value in the list df = df[df.column_name.isin(values) == False]
Les exemples suivants montrent comment utiliser cette syntaxe dans la pratique.
Exemple 1 : supprimer les lignes contenant une valeur spécifique
Le code suivant montre comment supprimer toutes les lignes contenant une valeur spécifique dans une colonne :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
'name': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
'rebounds': [11, 7, 14, 7],
'points': [26, 31, 22, 29]})
#view DataFrame
df
team name rebounds points
0 Mavs Dirk 11 26
1 Lakers Kobe 7 31
2 Spurs Tim 14 22
3 Cavs Lebron 7 29
#drop any rows that have 7 in the rebounds column
df = df[df.rebounds != 7]
#view resulting DataFrame
df
team name rebounds points
0 Mavs Dirk 11 26
2 Spurs Tim 14 22
Exemple 2 : supprimer les lignes contenant des valeurs dans une liste
Le code suivant montre comment supprimer toutes les lignes du DataFrame contenant une valeur dans une liste :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
'name': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
'rebounds': [11, 7, 14, 7],
'points': [26, 31, 22, 29]})
#view DataFrame
df
team name rebounds points
0 Mavs Dirk 11 26
1 Lakers Kobe 7 31
2 Spurs Tim 14 22
3 Cavs Lebron 7 29
#define list of values
values = [7, 11]
#drop any rows that have 7 or 11 in the rebounds column
df = df[df.rebounds.isin(values) == False]
#view resulting DataFrame
df
team name rebounds points
2 Spurs Tim 14 22
Exemple 3 : supprimer les lignes contenant des valeurs spécifiques dans plusieurs colonnes
Le code suivant montre comment supprimer les lignes du DataFrame qui contiennent une valeur spécifique dans l’une des plusieurs colonnes :
import pandas as pd
#create DataFrame
df = pd.DataFrame({'team': ['Mavs', 'Lakers', 'Spurs', 'Cavs'],
'name': ['Dirk', 'Kobe', 'Tim', 'Lebron'],
'rebounds': [11, 7, 14, 7],
'points': [26, 31, 22, 29]})
#view DataFrame
df
team name rebounds points
0 Mavs Dirk 11 26
1 Lakers Kobe 7 31
2 Spurs Tim 14 22
3 Cavs Lebron 7 29
#drop any rows that have 11 in the rebounds column or 31 in the points column
df = df[(df.rebounds != 11) & (df.points != 31)]
#view resulting DataFrame
df
team name rebounds points
2 Spurs Tim 14 22
3 Cavs Lebron 7 29
Ressources additionnelles
Comment supprimer des lignes par index dans Pandas
Comment supprimer des colonnes par index dans Pandas
Comment supprimer des lignes contenant une chaîne spécifique dans Pandas