es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Eres un traductor de español que traduce documentos de TI. Traduce lo siguiente al español reemplazando los caracteres especiales en una cadena Python.

Estoy tratando de reemplazar caracteres especiales en un marco de datos con otros sin acento o diferentes.

Puedo reemplazar uno con:

df['nombre_columna'] = df.nombre_columna.str.replace('?', 'j')

esto convirtió el ‘?’ en ‘j’ – pero – no puedo encontrar la manera de cambiar más de uno…

Tengo una lista de caracteres especiales que quiero cambiar. He intentado usar un diccionario pero parece que no funciona:

the_reps = {'?', 'j'}

df1 = df.replace(the_reps, regex=True)

esto me dio el error “nothing to replace at position 0”

EDIT:

Esto es lo que funcionó, aunque probablemente no es muy elegante:

df[col] = df.col.str.replace('carácter antiguo', 'carácter nuevo')
df[col] = df.col.str.replace('carácter antiguo', 'carácter nuevo')
df[col] = df.col.str.replace('carácter antiguo', 'carácter nuevo')
df[col] = df.col.str.replace('carácter antiguo', 'carácter nuevo')...

para cada uno…

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para reemplazar varios caracteres especiales en una columna de un dataframe con caracteres sin acentos u otros diferentes, puedes crear un diccionario con el mapeo del caracter antiguo al nuevo y utilizar el método replace con el parámetro regex configurado como True.

    Aquí tienes un ejemplo:

    # crear un diccionario con el mapeo del caracter antiguo al nuevo
    the_reps = {"?": "j", "!": "k", "&": "l"}
    
    # utilizar el método replace con regex=True para reemplazar los caracteres especiales en el dataframe
    df1 = df.replace(the_reps, regex=True)
    

    Si aún te encuentras con el error “nothing to replace at position 0” (no hay nada que reemplazar en la posición 0), podría significar que el caracter antiguo que estás intentando reemplazar no existe en la columna. Puedes intentar imprimir los valores de la columna para verificar si hay alguna discrepancia. Alternativamente, puedes utilizar múltiples declaraciones str.replace como en la edición anterior para reemplazar cada caracter especial individualmente.

Comments are closed.