Pandas : comment filtrer les lignes contenant une chaîne spécifique



Vous pouvez utiliser la syntaxe suivante pour filtrer les lignes contenant une certaine chaîne dans un DataFrame pandas :

df[df["col"].str.contains("this string")]

Ce tutoriel explique plusieurs exemples d’utilisation pratique de cette syntaxe avec le DataFrame suivant :

import pandas as pd

#create DataFrame
df = pd.DataFrame({'team': ['A', 'A', 'A', 'B', 'B', 'C'],
                   'conference': ['East', 'East', 'East', 'West', 'West', 'East'],
                   'points': [11, 8, 10, 6, 6, 5]})

#view DataFrame
df

        team	conference   points
0	A	East         11
1	A	East	     8
2	A	East	     10
3	B	West         6
4	B	West         6
5	C	East         5

Exemple 1 : filtrer les lignes contenant une chaîne spécifique

Le code suivant montre comment filtrer les lignes du DataFrame qui contiennent « A » dans la colonne d’équipe :

df[df["team"].str.contains("A")]

	team	conference points
0	A	East	   11
1	A	East	   8
2	A	East	   10

Seules les lignes dont la colonne équipe contient ‘A’ sont conservées.

Exemple 2 : filtrer les lignes contenant une chaîne dans une liste

Le code suivant montre comment filtrer les lignes du DataFrame qui contiennent « A » ou « B » dans la colonne d’équipe :

df[df["team"].str.contains("A|B")]

	team	conference points
0	A	East	   11
1	A	East	   8
2	A	East	   10
3	B	West	   6
4	B	West	   6

Seules les lignes dont la colonne équipe contient ‘A’ ou ‘B’ sont conservées.

Exemple 3 : filtrer les lignes contenant une chaîne partielle

Dans les exemples précédents, nous avons filtré en fonction des lignes correspondant exactement à une ou plusieurs chaînes.

Cependant, si nous souhaitons filtrer les lignes contenant une chaîne partielle, nous pouvons utiliser la syntaxe suivante :

#identify partial string to look for
keep= ["Wes"]

#filter for rows that contain the partial string "Wes" in the conference column
df[df.conference.str.contains('|'.join(keep))]

	team	conference points
3	B	West	   6
4	B	West	   6

Seules les lignes où la colonne conférence contient « Wes » sont conservées.

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans les pandas :

Comment supprimer des lignes dans Pandas DataFrame en fonction de la condition
Comment filtrer un DataFrame Pandas sur plusieurs conditions
Comment utiliser le filtre « NON IN » dans Pandas DataFrame

Ajouter un commentaire

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