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
Libérer: 2024-12-05 01:29:14
original
948 Les gens l'ont consulté

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))]
Copier après la connexion

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
Copier après la connexion

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))]
Copier après la connexion

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 de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal