Pandas : comment utiliser LIKE dans la requête ()
Vous pouvez utiliser les méthodes suivantes pour utiliser LIKE (similaire à SQL) dans une fonction pandas query() afin de rechercher des lignes contenant un modèle particulier :
Méthode 1 : rechercher les lignes contenant un modèle
df.query('my_column.str.contains("pattern1")')
Méthode 2 : rechercher des lignes contenant l’un des plusieurs modèles
df.query('my_column.str.contains("pattern1|pattern2")')
Les exemples suivants montrent comment utiliser chaque méthode en pratique avec le DataFrame pandas suivant :
import pandas as pd #create DataFrame df = pd.DataFrame({'team': ['Cavs', 'Heat', 'Mavs', 'Mavs', 'Nets', 'Heat', 'Cavs', 'Jazz', 'Jazz', 'Hawks'], 'points': [3, 3, 4, 5, 4, 7, 8, 7, 12, 14], 'rebounds': [15, 14, 14, 10, 8, 14, 13, 9, 5, 4]}) #view DataFrame print(df) team points rebounds 0 Cavs 3 15 1 Heat 3 14 2 Mavs 4 14 3 Mavs 5 10 4 Nets 4 8 5 Heat 7 14 6 Cavs 8 13 7 Jazz 7 9 8 Jazz 12 5 9 Hawks 14 4
Exemple 1 : rechercher des lignes contenant un modèle
Le code suivant montre comment utiliser la fonction query() pour rechercher toutes les lignes du DataFrame qui contiennent « avs » dans la colonne team :
df.query('team.str.contains("avs")') team points rebounds 0 Cavs 3 15 2 Mavs 4 14 3 Mavs 5 10 6 Cavs 8 13
Chaque ligne renvoyée contient « avs » quelque part dans la colonne d’équipe .
Notez également que cette syntaxe est sensible à la casse.
Ainsi, si nous utilisions « AVS » à la place, nous ne recevrions aucun résultat car aucune ligne ne contient « AVS » majuscule dans la colonne de l’ équipe .
Exemple 2 : rechercher des lignes contenant l’un des plusieurs modèles
Le code suivant montre comment utiliser la fonction query() pour rechercher toutes les lignes du DataFrame qui contiennent « avs » ou « eat » dans la colonne team :
df.query('team.str.contains("avs|eat")') team points rebounds 0 Cavs 3 15 1 Heat 3 14 2 Mavs 4 14 3 Mavs 5 10 5 Heat 7 14 6 Cavs 8 13
Chaque ligne renvoyée contient soit « avs » soit « eat » quelque part dans la colonne d’équipe .
Remarque : Le | L’opérateur signifie « ou » en pandas. N’hésitez pas à en utiliser autant que vous le souhaitez pour rechercher encore plus de modèles de chaînes.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :
Pandas : Comment filtrer les lignes en fonction de la longueur de la chaîne
Pandas : Comment supprimer des lignes en fonction de la condition
Pandas : Comment utiliser le filtre « NON IN »