Maison >développement back-end >Tutoriel Python >Comment puis-je vérifier efficacement les inclusions de plusieurs sous-chaînes dans Pandas ?

Comment puis-je vérifier efficacement les inclusions de plusieurs sous-chaînes dans Pandas ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-05 01:29:14881parcourir

How Can I Efficiently Check for Multiple Substring Inclusions in Pandas?

Test de l'inclusion de sous-chaînes de chaînes à l'aide de Pandas

Dans les pandas, il est nécessaire de déterminer si une chaîne contient l'une des sous-chaînes présentes dans une liste. Pour résoudre ce problème, une combinaison de df.isin() et df[col].str.contains() pourrait être utilisée. Cependant, cette approche est considérée comme lourde.

Une solution améliorée

Une approche plus raffinée consiste à tirer parti du | (barre verticale) dans les expressions régulières pour faire correspondre plusieurs sous-chaînes simultanément. Cette technique consiste à concaténer les sous-chaînes de la liste à l'aide de '|'.join() :

searchfor = ['og', 'at']
s[s.str.contains('|'.join(searchfor))]

Cette approche identifie efficacement les chaînes qui correspondent à l'une des sous-chaînes spécifiées, ce qui donne un résultat affiné :

0    cat
1    hat
2    dog
3    fog
dtype: object

Gestion des caractères spéciaux

Il est important de faire preuve de prudence lorsque vous manipulez des sous-chaînes contenant des caractères spéciaux tels que $ et ^ qui ont des significations spécifiques dans les expressions régulières. Pour garantir une correspondance littérale, utilisez re.escape() pour échapper ces caractères :

import re
matches = ['$money', 'x^y']
safe_matches = [re.escape(m) for m in matches]

s[s.str.contains('|'.join(safe_matches))]

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn