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