2017-08-29 1 views
0

Je suis désolé pour la question super facile, mais je ne peux pas le faire fonctionnerPython Pandas TypeError: premier argument doit être une chaîne ou un motif compilé

Je nettoyage des données et que vous souhaitez ajouter un drapeau, si le nom (qui est séparé en deux colonnes Prénom et Nom) est faux. J'ai établi plusieurs modèles, mais pour l'instant je travaillais avec des déclarations séparées, puis-je fusionner toutes ces déclarations en une seule?

pattern = "\?" 
match = incremental['First_Name'].str.contains(pattern) | incremental['Last_Name'].str.contains(pattern) 
incremental['Name_Flag'] = np.where(match, 'Y', '') 

pattern = "tourist" 
    match = incremental['First_Name'].str.contains(pattern) | incremental['Last_Name'].str.contains(pattern) 
    incremental['Name_Flag'] = np.where(match, 'Y', '') 

Cela ne fonctionne pas car la deuxième instruction écrase la première.

pattern = ("tourist","/?") 
     match = incremental['First_Name'].str.contains(pattern) | incremental['Last_Name'].str.contains(pattern) 
     incremental['Name_Flag'] = np.where(match, 'Y', '') 

je reçois une erreur pour la deuxième version (sans surprise)

TypeError: first argument must be string or compiled pattern. 
+1

Je suis légèrement confus. Pouvez-vous ajouter une entrée d'échantillon et une sortie attendue? Cherchez-vous à combiner le motif regex? Vous cherchez à vérifier les deux modèles? Quelle est la question de l'objectif final? – MattR

Répondre

1

Si vous essayez de rechercher les deux patterns- regex comme à la recherche pour les ? et tourist dans la chaîne. vous pouvez utiliser l'opérateur |. Donc, changer pattern à

pattern = "tourist|\?" 

Cela va vérifier si un point d'interrogation OU si « est dans la touristique a chaîne

Si jamais vous voulez vérifier regex, pythex est un très bon endroit. J'ai fait un test pour toi.

+0

Parfait - merci – jeangelj

+0

Ph - wow - merci "pythex" est incroyable, souhaite que google m'aurait donné il ya quelques heures ... – jeangelj

+0

@jeangelj Mon plaisir. Amusez-vous à coder – MattR