25 septiembre, 2023

FUNCIÓN PARA ELIMINAR TILDES EN EXCEL CON PYTHON

Hola a todos:

En el post de hoy vamos a replicar en Python una de las funciones que más veces he escrito en Excel Signum en distintos lenguajes. Si ponéis «tildes» en el buscador os encontraréis con todas las entradas relacionadas.

En Python es muy similar a PoquerQuery. La función sería esta:

def sin_tilde(MiCadena):
    replacements = (
    ("á", "a"),
    ("é", "e"),
    ("í", "i"),
    ("ó", "o"),
    ("ú", "u"),
    )
    for a, b in replacements:
        MiCadena = MiCadena.replace(a, b).replace(a.upper(), b.upper())
    return MiCadena
print(sin_tilde("áÉíÓú"))

Si ejecutáis el código el resultado será: aEiOu, es decir el texto sin tildes.

Como podéis observar es una función bastante sencilla. Pero donde nos será útil es aplicándola, por ejemplo, a un archivo de Excel.

Para hacer una prueba utilizaré el código de este post: IMPORTAR Y EXPORTAR ARCHIVO DE EXCEL CON PYTHON e incluiré la función para eliminar las tildes del archivo importado y extraer un nuevo archivo sin tildes.

El código ya modificado sería este:

import pandas as pd
import xlsxwriter
#creamos función para reemplazar tildes
def sin_tilde(MiCadena):
    replacements = (
    ("á", "a"),
    ("é", "e"),
    ("í", "i"),
    ("ó", "o"),
    ("ú", "u"),
    )
    for a, b in replacements:
        MiCadena = MiCadena.replace(a, b).replace(a.upper(), b.upper())
    return MiCadena
#Importamos archivo excel
df = pd.read_excel(r"C:\Users\USUARIO\OneDrive\Documents-Segu\IMPORTAR Y MODIFICAR EXCEL CON PYTHON\ARCHIVO_IMPORTADO.xlsx",sheet_name='Hoja1',header=None)
count= 0
column= 0  
#inidicamos ruta del archivo en el que vamos a exportar los datos
workbook = xlsxwriter.Workbook(r'C:\Users\USUARIO\OneDrive\Documents-Segu\IMPORTAR Y MODIFICAR EXCEL CON PYTHON\ARCHIVO EXPORTADO.xlsx')
worksheet = workbook.add_worksheet('Hoja1')
#Con un loop modificamos según las condiciones en cada columna
for index, row in df.iterrows():
    for i in range(0,df.shape[1]):
        #grabamos en la hoja del archivo export y aplicamos función
        worksheet.write(count, i, sin_tilde(str(row[i])))
    count += 1
workbook.close()

El resultado de aplicar la función será devolver los datos sin tildes y formato texto. No es necesario que os muestre el resultado porque es evidente. Si utilizáis el ejemplo del post con tildes, lo veréis perfectamente.

Y esto es todo, espero que os sea de utilidad 🙂

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies