Maison > développement back-end > Tutoriel Python > Comment les expressions régulières peuvent-elles optimiser le filtrage Pandas pour plusieurs sous-chaînes d'une série ?

Comment les expressions régulières peuvent-elles optimiser le filtrage Pandas pour plusieurs sous-chaînes d'une série ?

Linda Hamilton
Libérer: 2024-11-28 11:26:11
original
685 Les gens l'ont consulté

How Can Regular Expressions Optimize Pandas Filtering for Multiple Substrings in a Series?

Optimisation du filtrage Pandas pour plusieurs sous-chaînes en série

Arrière-plan

Filtrage de grandes trames de données Pandas en fonction de plusieurs sous-chaînes dans une chaîne colonne peut être une opération coûteuse en termes de calcul. L'approche conventionnelle consiste à appliquer un masque pour chaque sous-chaîne, puis à la réduire à l'aide d'opérations logiques.

Approche proposée

Pour améliorer l'efficacité, nous suggérons d'exploiter les expressions régulières (avec échappement caractères spéciaux) pour la correspondance des sous-chaînes. En joignant les sous-chaînes échappées à l'aide d'un tube regex (|), nous pouvons tester chaque sous-chaîne par rapport à la chaîne jusqu'à ce qu'une correspondance soit trouvée.

Implémentation

import re

# Escape special characters in substrings
esc_lst = [re.escape(s) for s in lst]

# Join escaped substrings using regex pipe
pattern = '|'.join(esc_lst)

# Filter based on concatenated pattern
df[col].str.contains(pattern, case=False)
Copier après la connexion

Considérations sur les performances

Les performances sont améliorées en réduisant le nombre de tests requis par ligne. La méthode vérifie les sous-chaînes jusqu'à ce qu'une correspondance soit trouvée, éliminant ainsi les itérations inutiles.

Benchmarking

En utilisant un exemple de trame de données avec 50 000 chaînes et 100 sous-chaînes, la méthode proposée prend environ une seconde, par rapport aux cinq secondes de l'approche conventionnelle. Cet avantage en termes de performances augmenterait avec un ensemble de données plus grand.

Conclusion

En exploitant les expressions régulières avec des caractères spéciaux échappés, nous pouvons filtrer efficacement les trames de données Pandas pour plusieurs sous-chaînes, réduisant ainsi considérablement surcharge de calcul.

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