Hola a todos!
Perdonad este que este fin de semana no haya publicado post, algunas veces el tiempo se echa encima y no hay forma de hacerlo.
En fin, publicaré hoy lo que tenía pensado publicar el viernes anterior. Se trata de reemplazar datos en una cadena de texto y de eliminar espacios en blanco con python.
Imaginad que tenemos estos datos con los siguientes espacios en blanco tanto a la derecha como a la izquierda:
![](https://i0.wp.com/excelsignum.com/wp-content/uploads/2021/06/REEMPLAZAR-Y-ELIMINAR-ESPACIOS-EN-BLANCO-CON-PYTHON.png?resize=513%2C652&ssl=1)
y queremos eliminarlos en derecha e izquierda, luego solo en la parte derecha, luego en la parte izquierda y finalmente reemplazar la coma (,) por el punto y coma (;).
Para hacerlo vamos a utilizar la siguiente rutina:
import pandas as pd
import xlsxwriter
#Importamos archivo excel
df = pd.read_excel(r"C:\Users\USUARIO\OneDrive\Documents-Segu\ESPACIOS\ESPACIOS.xlsx",sheet_name='Hoja1')
count=0
workbook = xlsxwriter.Workbook(r'C:\Users\USUARIO\OneDrive\Documents-Segu\ESPACIOS\RESP_ESPACIOS.xlsx')
worksheet = workbook.add_worksheet('Hoja1')
MiArray=['SIN ESPACIOS', 'SIN ESPACIOS DERECHA', 'SIN ESPACIOS IZQUIERDA', 'REEMPLAZAR COMA']
#grabamos datos en archivo excel
for index, row in df.iterrows():
#borrar espacios izquierda y derecha
worksheet.write(count+1, 0, row[0].strip())
#borrar espacios a la derecha
worksheet.write(count+1, 1, row[0].rstrip())
#borrar espacios a la izquierda
worksheet.write(count+1, 2, row[0].lstrip())
#reemplazar coma por punto y coma
worksheet.write(count+1, 3, row[0].strip().replace(",", ";") )
count += 1
print(row[0])
#grabamos encabezados
for columna, item in enumerate(MiArray):
worksheet.write(0, columna, item)
workbook.close()
Para eliminar los espacios tanto en la parte derecha como la izquierda, utilizamos el método .strip() que elimina los caracteres en blanco iniciales y finales.
Para eliminar los espacios en la parte derecha, utilizamos el método .rstrip() que elimina los caracteres en blanco a la derecha de la cadena.
Para eliminar los espacios en la parte izquierda, utilizamos el método .lstrip() que elimina los caracteres en blanco a la izquierda de la cadena.
Para reemplazar utilizamos el método .replace()
Nota: Respecto al método strip (y las otras dos variantes) podemos establecer opcionalmente, caracteres específicos a eliminar en lugar de espacios en blanco. Debemos especificarlos dentro del paréntesis. Por ejemplo:
sCadena = "...mi,,,amigo Mario//"
ejemplo = sCadena.strip(".mi,//")
print(ejemplo)
Para mostrar únicamente «amigo Mario» debemos indicar en el orden que se encuentran en la cadena los caracteres a eliminar.
Volviendo al tema principal, el resultado de aplicar el código es el siguiente:
![](https://i0.wp.com/excelsignum.com/wp-content/uploads/2021/06/REEMPLAZAR-Y-ELIMINAR-ESPACIOS-EN-BLANCO-CON-PYTHON_2.png?resize=919%2C656&ssl=1)
Como habéis podido observar estoy utilizando Pandas para importar y xlsxwriter para exportar los datos. Y es interesante el tema de los encabezados y de cómo los podemos indicar utilizando un loop.
MiArray=['SIN ESPACIOS', 'SIN ESPACIOS DERECHA', 'SIN ESPACIOS IZQUIERDA', 'REEMPLAZAR COMA']
for columna, item in enumerate(MiArray):
worksheet.write(0, columna, item)
workbook.close()
Y esto es todo, espero que os sea de utilidad!.
Os dejo el archivo para practicar:
¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.
¡¡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