Maison >développement back-end >Tutoriel Python >Comment puis-je effectuer efficacement une correspondance partielle de chaînes dans les DataFrames Pandas ?

Comment puis-je effectuer efficacement une correspondance partielle de chaînes dans les DataFrames Pandas ?

Patricia Arquette
Patricia Arquetteoriginal
2024-12-16 15:15:15937parcourir

How Can I Efficiently Perform Partial String Matching in Pandas DataFrames?

Correspondance partielle de chaînes dans les DataFrames Pandas

Le filtrage d'un DataFrame en fonction de critères de chaîne est une tâche courante dans l'analyse des données. Bien que les correspondances de chaînes exactes soient simples à l'aide de l'opérateur ==, les correspondances de chaînes partielles nécessitent une approche différente.

Une option consiste à utiliser des expressions régulières, comme le démontre l'extrait de code dans la question :

re.search(pattern, cell_in_question)

Cependant, pour les DataFrames volumineux, cette approche peut s'avérer inefficace en raison de sa nature itérative.

Une solution vectorisée utilisant les méthodes Series.str de Pandas est disponible et fortement recommandé pour de meilleures performances :

df[df['A'].str.contains("hello")]

Cette méthode utilise la fonction intégrée contain() pour vérifier si une sous-chaîne est présente dans une série de chaînes. Il renvoie un masque booléen qui peut être utilisé pour filtrer le DataFrame.

Dans les versions antérieures de Pandas (avant la 0.8.1), une syntaxe légèrement différente était utilisée :

df['A'].apply(lambda x: "hello" in x)

Peu importe Selon l'approche que vous choisissez, la correspondance partielle de chaînes dans Pandas DataFrames est un outil puissant pour filtrer les données de manière efficace et efficiente.

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