Home > Mobile >  Remove characters using re.sub
Remove characters using re.sub

Time:10-09

I'm trying to remove the special characters with the re.sub() function, but when I use the re.sub() function my replace function stops working.

Excel, import

My code: import re import pandas as pd from IPython.display import display

tabela = pd.read_excel("tst.xlsx")
(tabela[['nome', 'mensagem', 'arquivo', 'telefone']]) 

for linha in tabela.index:
    nome = tabela.loc[linha, "nome"]
    mensagem = tabela.loc[linha, "mensagem"]
    acordo = tabela.loc[linha, "acordo"]
    telefone = tabela.loc[linha, "telefone"]

    texto = mensagem.replace("fulano", nome)
    texto = texto.replace( "value", acordo)
    texto = texto.replace( "phone", telefone)
    texto = re.sub(r"[!!@#$%¨&*()_?',;.]", '', telefone)
    print(texto)

Print result:

11

How it should come out:

thyago

R$200

11

CodePudding user response:

Try this:

repalce

texto = re.sub(r"[!!@#$%¨&*()_?',;.]", '', telefone)

to

texto = re.sub(r"[!!@#$%¨&*()_?',;.]", '', texto)

CodePudding user response:

Loops should be rarely used in Pandas. Try this:

tabela['telefone'] = tabela['telefone'].str.replace(r'[!!@#$%¨&*()_?\',;.]', '', regex=True)    
tabela['mensagem']= tabela.apply(lambda x: x['mensagem'].replace('fulano', str(x['nome'])), axis=1)
tabela['mensagem']= tabela.apply(lambda x: x['mensagem'].replace('value', str(x['acordo'])), axis=1)
tabela['mensagem']= tabela.apply(lambda x: x['mensagem'].replace('phone', str(x['telefone'])), axis=1)
  • Related