Test de l'inclusion de sous-chaînes de chaînes dans Pandas
Recherche d'une méthode efficace pour déterminer si une chaîne dans une série Pandas contient l'un des éléments d'une liste spécifiée des sous-chaînes ? Une requête à ce sujet peut être consultée ci-dessous :
Requête originale :
Existe-t-il une fonction pandas qui combine les fonctionnalités de df.isin() et df[col] .str.contient() ? Mon objectif est d'identifier tous les cas où une série contient une sous-chaîne d'une liste donnée.
Solution proposée :
Une approche suggérée dans le forum utilisait une compréhension de boucle et de liste. pour vérifier chaque sous-chaîne de la série. Cependant, une solution plus concise et efficace existe.
Solution basée sur Regex :
Exploiter l'expression régulière | opérateur, on peut construire une expression régulière qui correspond à chaque sous-chaîne de la liste donnée. Cette expression régulière peut ensuite être utilisée avec str.contains pour filtrer la série pour les valeurs souhaitées.
import re searchfor = ['og', 'at'] regex = '|'.join(searchfor) df['matching_column'][df['matching_column'].str.contains(regex)]
Cette approche est plus efficace que la méthode itérative et permet d'obtenir efficacement le résultat souhaité.
Gestion des caractères spéciaux :
Si les sous-chaînes contiennent des caractères spéciaux avec une signification regex, tels que $ ou ^, ils doivent être échappés en utilisant re.escape() pour garantir qu'ils sont interprétés littéralement.
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!