Python

Guardar diferentes hojas Excel con Python

En una entrada anterior explicamos el funcionamiento de las funciones de Pandas para guardar un DataFrame en un libro Excel. Unos métodos que son muy útiles. Aunque tal como se explicó en esa entrada solamente es posible guardar una única hoja. En la entrada de hoy vamos a explicar cómo guardar más de un DataFrame en diferentes hojas Excel con Python.

Problemas con el método to_excel

Los DataFrames de Pandas cuentan con el método to_excel con el que se exporta el contenido de este a un archivo Excel. Método al que se le puede pasar el nombre del archivo y de la hoja del libro. Parece que simplemente con repetir este proceso llegaría para guardar más de un DataFrame en la misma hoja, pero no es así. Cuando se le indica el nombre de un archivo al método to_excel este sobrescribe el contenido de este. Borrando el contenido que ya existiese en este.

Crear un objeto para guardar varias hojas Excel con Python

Para solucionar este problema es necesario usar la clase ExcelWriter de Pandas para crear un objeto de acceso al archivo. Siendo posible de este modo guardar más de una hoja.

Así antes de guardar un DataFrame en un libro de Excel será necesario crear primero una instancia de ExcelWriter con el nombre del archivo. Posteriormente se guardarán todos los DataFrames necesarios reemplazando en nombre del archivo por el objeto. Finalmente, es necesario guardar explícitamente el archivo, algo que ahora no separa automáticamente, y cerrarlo. Algo que se puede ver en el siguiente ejemplo.

import pandas as pd
from seaborn import load_dataset

planets = load_dataset("planets")
tips = load_dataset("tips")

writer = pd.ExcelWriter('archivo.xlsx')

planets.to_excel(writer, sheet_name="planets", index=False)
tips.to_excel(writer, sheet_name="tips", index=False)

writer.save()
writer.close()

Para ilustrar esta entrada se ha importado un par de conjunto de datos de la librería Seaborn. Concretamente planets y tips, aunque los datos en sí son lo de menos.

En este caso es importante recordar que hasta que se llamen a al métodos save() los datos no se guardarán en el archivo. Además es necesario cerrar el archivo con el método close() para evitar posibles problemas

Conclusiones

Hoy hemos visto cómo se tiene que operar para guardar diferentes hojas Excel con Python en un mismo libro. Requiere unos pasos adicionales al método para guardar una única hoja, pero así se pueden guardar los datos de una forma más ordenada.

Imagen de StartupStockPhotos en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez
Tags: Pandas

Recent Posts

Cómo crear un Data Lake en Azure paso a paso

El volumen de datos que las organizaciones generan y deben manejar crece día a día:…

2 días ago

¿Por qué el azar no es tan aleatorio como parece?

Cuando escuchamos la palabra “azar”, pensamos en lo impredecible: una moneda que gira en el…

4 días ago

Detectan vulnerabilidad crítica en MLflow que permite ejecución remota de código

Una nueva vulnerabilidad crítica ha sido detectada en MLflow, la popular plataforma de código abierto…

5 días ago

Curiosidad: ¿Por qué los datos “raros” son tan valiosos?

En estadística, los valores atípicos —también llamados outliers— son esos datos que se alejan “demasiado”…

1 semana ago

Cómo generar contraseñas seguras con Python (y entender su nivel de seguridad)

Vivimos en un mundo cada vez más digital, donde gestionamos decenas (o incluso cientos) de…

2 semanas ago

Cómo ejecutar JavaScript desde Python: Guía práctica con js2py

Aunque Python y JavaScript son lenguajes muy distintos en su propósito y ecosistema, no es…

2 semanas ago

This website uses cookies.