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

Comment puis-je vérifier efficacement plusieurs sous-chaînes dans une série Pandas ?

Patricia Arquette
Libérer: 2024-12-14 15:04:11
original
721 Les gens l'ont consulté

How Can I Efficiently Check for Multiple Substrings Within a Pandas Series?

Test de la présence de sous-chaînes dans les chaînes à l'aide de Pandas DataFrame

Lorsque vous travaillez avec des données de chaîne dans la bibliothèque Pandas de Python, vous devrez peut-être déterminer si une chaîne contient n'importe quelle sous-chaîne d'une liste donnée. Bien qu'il existe diverses fonctions qui vérifient la présence de sous-chaînes, telles que df.isin() et df[col].str.contains(), les utiliser en combinaison peut être quelque peu complexe.

Supposons que nous ayons un Pandas Séries contenant des chaînes telles que « chat », « chapeau », « chien », « brouillard » et « animal de compagnie », et nous souhaitons identifier toutes les chaînes qui incluent « og » ou "at."

Une solution consiste à utiliser un modèle d'expression régulière qui correspond à n'importe quelle sous-chaîne de la liste en utilisant le "|" personnage. Par exemple, en joignant les sous-chaînes dans la recherche à l'aide de "|", nous créons une expression régulière :

>>> searchfor = ['og', 'at']
>>> regex_pattern = '|'.join(searchfor)
>>> s[s.str.contains(regex_pattern)]
0    cat
1    hat
2    dog
3    fog
dtype: object
Copier après la connexion

Cette approche trouve efficacement toutes les chaînes dans s qui contiennent "og" ou "at". C'est une méthode concise et efficace.

Cependant, si les sous-chaînes de la recherche contiennent des caractères spéciaux comme "$" ou "^", il est crucial de les échapper à l'aide de re.escape() pour garantir une correspondance littérale. Par exemple :

>>> import re
>>> matches = ['$money', 'x^y']
>>> safe_matches = [re.escape(m) for m in matches]
>>> regex_pattern = '|'.join(safe_matches)
>>> s[s.str.contains(regex_pattern)]
0    cat
1    hat
2    dog
3    fog
dtype: object
Copier après la connexion

En échappant aux caractères spéciaux, nous nous assurons qu'ils correspondent littéralement à chaque caractère lorsqu'ils sont utilisés avec str.contains. Cette approche fournit une solution robuste pour la détection de sous-chaînes dans la série Pandas.

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal