2017-10-13 6 views
0

J'essaie de parcourir une liste de chaînes en utilisant dataframe1 pour vérifier si l'autre dataframe2 a des chaînes trouvées dans dataframe1 pour les remplacer.Pandas Python: sre_constants.error: manquant), sous-masque non terminé à la position 10

for index, row in df.iterrows(): 
    print(row['x1']) 
    df2['strings'].str.replace(row['x1'],"") 

Pour ce faire, j'itérées en utilisant le code ci-dessus pour vérifier et remplacer par une chaîne trouvée dans DF1

wait_timeout 
interactive_timeout 
pool_recycle 
.... 
__all__ 
folder_name 
re.compile('he(lo') <= error string 

Cependant, tout en réitérant qu'il tente de remplacer la chaîne re.compile('he(lo') mais est incapable comme la chaîne a « (() » supports qui sont inégaux. J'ai lu d'autres discussions qui remplacent les utilisations reg expressions et je peux le fixer à l'aide/(. donc, je tenté d'utiliser

replace = row['x1'].str.replace("(","\(") 
replace = replace.str.replace(")","\)") 

Mais j'ai reçu une erreur sur replace = replace.str.replace(")","\)") indiquant que AttributeError: 'str' object has no attribute 'str'.

Merci à l'avance!

Répondre

1

En ce qui concerne cette erreur:

AttributeError: 'str' object has no attribute 'str'

Vous assignons déjà un objet de chaîne à replace, donc il ne possède pas d'attributs appelés str.

Vous pouvez corriger cela avec replace = replace.replace(")","\)"), bien que vous pouvez envisager de renommer que replace variables .: par exemple some_other_name = replace.replace(")","\)")

+0

Ohhh. C'était une erreur stupide de ma part, j'ai essayé d'utiliser replace.replace et il en est résulté une erreur, donc j'ai pensé que l'erreur était ailleurs. Une fois que j'ai mis en œuvre une autre erreur étrange s'est produite 'sre_constants.error: jeu de caractères non terminés à la position 33' pour le mot' os.path.split (nom.co_filename) [], name.co_firstlineno, name.co_name' La chaîne semble bien avec() et []. – WhiteSolstice