Exportar datos a Excel en Python
-
Exportar datos a Excel con la función
DataFrame.to_excel()
en Python -
Exportar datos a Excel con la biblioteca
xlwt
en Python -
Exportar datos a Excel con la biblioteca
openpyxl
en Python -
Exportar datos a Excel con la biblioteca
XlsWriter
en Python
Este tutorial demostrará diferentes métodos para escribir datos tabulares en un archivo de Excel en Python.
Exportar datos a Excel con la función DataFrame.to_excel()
en Python
Si queremos escribir datos tabulares en una hoja de Excel en Python, podemos usar la función to_excel()
en Pandas DataFrame
.
Un DataFrame
de pandas es una estructura de datos que almacena datos tabulares. La función to_excel()
toma dos parámetros de entrada: el nombre del archivo y el nombre de la hoja. Debemos almacenar nuestros datos dentro de un DataFrame
de pandas y luego llamar a la función to_excel()
para exportar esos datos a un archivo de Excel.
Necesitamos tener la biblioteca pandas ya instalada en nuestro sistema para que este método funcione. El comando para instalar la biblioteca pandas
se da a continuación.
pip install pandas
Una demostración de trabajo de este enfoque se da a continuación.
import pandas as pd
list1 = [10, 20, 30, 40]
list2 = [40, 30, 20, 10]
col1 = "X"
col2 = "Y"
data = pd.DataFrame({col1: list1, col2: list2})
data.to_excel("sample_data.xlsx", sheet_name="sheet1", index=False)
Archivo sample_data.xlsx
:
En el código anterior, exportamos los datos dentro de list1
y list2
como columnas al archivo de Excel sample_data.xlsx
con la función to_excel()
de Python.
Primero almacenamos los datos dentro de ambas listas en un DataFrame
de pandas. Después de eso, llamamos a la función to_excel()
y pasamos los nombres de nuestro archivo de salida y la hoja.
Tenga en cuenta que este método solo funcionará siempre que la longitud de ambas listas sea igual. Si las longitudes no son iguales, podemos compensar los valores faltantes completando la lista más corta con el valor None
.
Este es el método más fácil para escribir datos en un archivo compatible con Excel en Python.
Exportar datos a Excel con la biblioteca xlwt
en Python
La biblioteca xlwt
se utiliza para escribir datos en hojas de cálculo antiguas compatibles con las versiones de Excel de 95 a 2003 en Python. Es la forma estándar de escribir datos en archivos de Excel en Python.
También es bastante simple y nos da más control sobre el archivo de Excel que el método anterior. Podemos crear un objeto de la clase xlwt.Workbook
y llamar a la función .add_sheet()
para crear una nueva hoja en nuestro libro de trabajo.
Entonces podemos usar el método write()
para escribir nuestros datos. Esta función write()
toma el índice de la fila (a partir de 0), el índice de la columna (también a partir de 0) y los datos que se escribirán como parámetros de entrada.
Necesitamos instalar la biblioteca xlwt
en nuestra máquina para que este método funcione. El comando para instalar la biblioteca se proporciona a continuación.
pip install xlwt
Un breve ejemplo de trabajo de este método se da a continuación.
import xlwt
from xlwt import Workbook
wb = Workbook()
sheet1 = wb.add_sheet("Sheet 1")
# sheet1.write(row,col, data, style)
sheet1.write(1, 0, "1st Data")
sheet1.write(2, 0, "2nd Data")
sheet1.write(3, 0, "3rd Data")
sheet1.write(4, 0, "4th Data")
wb.save("sample_data2.xls")
Archivo sample_data2.xls
:
En Python, escribimos datos en el archivo sample_data2.xls
con la biblioteca xlwt
.
Primero creamos un objeto de la clase Workbook
. Usando este objeto, creamos una hoja con el método add_sheet()
de la clase Workbook
.
Luego escribimos nuestros datos en la hoja recién creada con la función escribir()
. Por último, cuando todos los datos se escribieron correctamente en su índice especificado, guardamos el libro de trabajo en un archivo de Excel con la función guardar()
de la clase Libro de trabajo
.
Este es un enfoque bastante sencillo, pero el único inconveniente es que tenemos que recordar el índice de fila y columna para cada celda de nuestro archivo. No podemos usar simplemente los índices A1
y A2
. Otra desventaja de este enfoque es que solo podemos escribir archivos con la extensión .xls
.
Exportar datos a Excel con la biblioteca openpyxl
en Python
Otro método que se puede usar para escribir datos en un archivo compatible con Excel es la biblioteca openpyxl
en Python.
Este enfoque aborda todos los inconvenientes de los métodos anteriores. No necesitamos recordar los índices exactos de fila y columna para cada punto de datos. Simplemente especifica nuestras celdas como A1
o A2
en la función write()
.
Otra ventaja interesante de este enfoque es que se puede usar para escribir archivos con las nuevas extensiones de archivo .xlsx
, que no era el caso en el enfoque anterior. Este método funciona igual que el anterior.
La única diferencia aquí es que tenemos que inicializar cada celda además de una hoja con el método cell(row,col)
en la biblioteca openpyxl
.
El openpyxl
también es una biblioteca externa. Necesitamos instalar esta biblioteca para que este método funcione correctamente. El comando para instalar la biblioteca openpyxl
en nuestra máquina se encuentra a continuación.
pip install openpyxl
A continuación se proporciona una demostración de trabajo simple de este enfoque.
import openpyxl
my_wb = openpyxl.Workbook()
my_sheet = my_wb.active
c1 = my_sheet.cell(row=1, column=1)
c1.value = "Maisam"
c2 = my_sheet.cell(row=1, column=2)
c2.value = "Abbas"
c3 = my_sheet["A2"]
c3.value = "Excel"
# for B2: column = 2 & row = 2.
c4 = my_sheet["B2"]
c4.value = "file"
my_wb.save("sample_data3.xlsx")
Archivo sample_data3.xlsx
:
En el código anterior, escribimos datos en el archivo de Excel sample_data3.xlsx
con la biblioteca openpyxl
en Python.
Primero creamos un objeto de la clase Workbook
. Creamos una hoja con el Workbook.active
usando este objeto. También creamos un objeto de celda con my_sheet.cell(row = 1, column = 1)
.
En lugar de escribir el número exacto de fila y columna, también podemos especificar el nombre de la celda como A1
. Luego podemos asignar nuestro valor de celda recién creado con c1.value = "Maisam"
.
Por último, cuando todos los datos se escribieron correctamente en su índice especificado, guardamos el libro de trabajo en un archivo de Excel con la función save()
de la clase Workbook
.
Exportar datos a Excel con la biblioteca XlsWriter
en Python
Otra forma excelente y sencilla de escribir datos en un archivo compatible con Excel es la biblioteca XlsWriter
en Python.
Esta biblioteca nos brinda mucho más control sobre nuestro archivo de salida que cualquier método anterior mencionado anteriormente. Esta biblioteca también es compatible con las últimas extensiones de archivo compatibles con Excel, como xlsx
.
Para escribir datos en un archivo de Excel, primero debemos crear un objeto de la clase Workbook
proporcionando el nombre del archivo del constructor como parámetro de entrada. Luego tenemos que crear una hoja con la función add_worksheet()
en la clase Workbook
.
Después de agregar una hoja, podemos escribir datos con la función sheet.write(cell, data)
. Esta función sheet.write()
toma dos parámetros: el nombre de la celda y los datos a escribir.
Después de escribir todos los datos en la hoja, debemos cerrar nuestro libro de trabajo con el método close()
dentro de la clase Workbook
.
El XlsWriter
es una biblioteca externa y no viene preinstalado con Python. Primero tenemos que instalar la biblioteca XlsWriter
en nuestra máquina para que este método funcione. El comando para instalar la biblioteca XlsWriter
se proporciona a continuación.
pip install XlsxWriter
A continuación se muestra una demostración de trabajo de este enfoque.
import xlsxwriter
workbook = xlsxwriter.Workbook("sample_data4.xlsx")
sheet = workbook.add_worksheet()
sheet.write("A1", "Maisam")
sheet.write("A2", "Abbas")
workbook.close()
Archivo sample_data4.xlsx
:
Escribimos datos en el archivo de Excel sample_data4.xlsx
con la biblioteca xlswriter
de Python en el código anterior.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedIn