API · Pandas

Función Pandas DataFrame DataFrame.to_excel()

La función DataFrame.to_excel() vuelca el dataframe a un fichero excel, de una o varias hojas.

En esta página

La función Python Pandas DataFrame.to_excel(values) vuelca los datos del dataframe a un archivo de Excel, en una sola hoja o en varias hojas.

Sintaxis de pandas.DataFrame.to_excel()

DataFrame.isin(
    excel_writer,
    sheet_name="Sheet1",
    na_rep="",
    float_format=None,
    columns=None,
    header=True,
    index=True,
    index_label=None,
    startrow=0,
    startcol=0,
    engine=None,
    merge_cells=True,
    encoding=None,
    inf_rep="inf",
    verbose=True,
    freeze_panes=None,
)

Parámetros

excel_writer La ruta del archivo de Excel o el existente pandas.ExcelWriter
sheet_name Nombre de la hoja a la que el DataFrame se vuelca
na_rep Representación de valores nulos.
float_format Formato de los números float
header Especifique el encabezado del archivo de Excel generado.
index Si es True, escribe el Dataframe index en el Excel.
index_label Etiqueta de la columna para la columna del índice.
startrow La fila de la celda superior izquierda para escribir los datos en el Excel.
Por defecto es 0
startcol La columna de la celda superior izquierda para escribir los datos en el Excel.
Por defecto es 0
engine Parámetro opcional para especificar el motor a utilizar. openyxl o xlswriter
merge_cells Fusionar el MultiIndex con las células fusionadas
encoding Codificación del archivo de salida de Excel. Sólo es necesario si se usa el escritor xlwt, otros escritores soportan Unicode de forma nativa.
inf_rep Representación del infinito. Por defecto es inf
verbose Si True, los registros de errores consisten en más información
freeze_panes Especifica la parte inferior y la parte derecha del panel congelado. Es de base única, pero no de base cero.

Retorna

Nadie.

Códigos de ejemplo: Pandas DataFrame.to_excel()

import pandas as pd

dataframe= pd.DataFrame({'Attendance': [60, 100, 80, 78, 95],
                    'Name': ['Olivia', 'John', 'Laura', 'Ben', 'Kevin'],
                    'Marks': [90, 75, 82, 64, 45]})

dataframe.to_excel('test.xlsx')

La llamada DataFrame es

   Attendance    Name  Marks
0          60  Olivia     90
1         100    John     75
2          80   Laura     82
3          78     Ben     64
4          95   Kevin     45

Se crea test.xlsx.

Pandas DataFrame to_excel

Códigos de ejemplo: Pandas DataFrame.to_excel() Con ExcelWriter

El ejemplo anterior utiliza la ruta del archivo como el excel_writer, y también podríamos utilizar pandas.Excelwriter para especificar el archivo excel que el dataframe vuelca.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": [60, 100, 80, 78, 95],
        "Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
        "Marks": [90, 75, 82, 64, 45],
    }
)

with pd.ExcelWriter("test.xlsx") as writer:
    dataframe.to_excel(writer)

Códigos de ejemplo: Pandas DataFrame.to_excel para añadir a un archivo de Excel existente

import pandas as pd
import openpyxl

dataframe = pd.DataFrame(
    {
        "Attendance": [60, 100, 80, 78, 95],
        "Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
        "Marks": [90, 75, 82, 64, 45],
    }
)

with pd.ExcelWriter("test.xlsx", mode="a", engine="openpyxl") as writer:
    dataframe.to_excel(writer, sheet_name="new")

Deberíamos especificar el motor como openpyxl pero no como xlswriter por defecto; de lo contrario, obtendremos el error de que xlswriter no soporta el modo append.

ValueError: Append mode is not supported with xlsxwriter!

openpyxl debe ser instalado e importado porque no es parte de pandas.

pip install openpyxl

Pandas DataFrame to_excel - adjuntar hoja

Códigos de ejemplo: Pandas DataFrame.to_excel para escribir múltiples hojas

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": [60, 100, 80, 78, 95],
        "Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
        "Marks": [90, 75, 82, 64, 45],
    }
)

with pd.ExcelWriter("test.xlsx") as writer:
    dataframe.to_excel(writer, sheet_name="Sheet1")
    dataframe.to_excel(writer, sheet_name="Sheet2")

Vuelca el objeto del DataFrame tanto a la Sheet1 como a la Sheet2.

También puede escribir diferentes datos en múltiples hojas si especifica el parámetro columns.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": [60, 100, 80, 78, 95],
        "Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
        "Marks": [90, 75, 82, 64, 45],
    }
)

with pd.ExcelWriter("test.xlsx") as writer:
    dataframe.to_excel(writer, columns=["Name", "Attendance"], sheet_name="Sheet1")
    dataframe.to_excel(writer, columns=["Name", "Marks"], sheet_name="Sheet2")

Códigos de ejemplo: Pandas DataFrame.to_excel con el parámetro header

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": [60, 100, 80, 78, 95],
        "Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
        "Marks": [90, 75, 82, 64, 45],
    }
)

with pd.ExcelWriter("test.xlsx") as writer:
    dataframe.to_excel(writer, header=["Student", "First Name", "Score"])

El encabezado predeterminado en el archivo de Excel creado es el mismo que el de los nombres de las columnas de los cuadros de datos. El parámetro header especifica el nuevo encabezado para reemplazar el predeterminado.

Pandas DataFrame to_excel - cambiar el nombre de la cabecera

Códigos de ejemplo: Pandas DataFrame.to_excel con index = False

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": [60, 100, 80, 78, 95],
        "Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
        "Marks": [90, 75, 82, 64, 45],
    }
)

with pd.ExcelWriter("test.xlsx") as writer:
    dataframe.to_excel(writer, index=False)

index=False especifica que DataFrame.to_excel() genera un archivo de Excel sin fila de encabezamiento.

Códigos de ejemplo: Pandas DataFrame.to_excel Con el parámetro index_label

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": [60, 100, 80, 78, 95],
        "Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
        "Marks": [90, 75, 82, 64, 45],
    }
)

with pd.ExcelWriter("test.xlsx") as writer:
    dataframe.to_excel(writer, index_label="id")

index_label='id' establece que el nombre de la columna del índice es id.

Pandas DataFrame to_excel - establece la etiqueta de índice

Códigos de ejemplo: Pandas DataFrame.to_excel con el parámetro float_format

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": [60, 100, 80, 78, 95],
        "Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
        "Marks": [90, 75, 82, 64, 45],
    }
)

with pd.ExcelWriter("test.xlsx") as writer:
    dataframe.to_excel(writer, float_format="%.1f")

float_format="%.1f" especifica que el número flotante tiene dos dígitos float.

Códigos de ejemplo: Pandas DataFrame.to_excel con el parámetro freeze_panes

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": [60, 100, 80, 78, 95],
        "Name": ["Olivia", "John", "Laura", "Ben", "Kevin"],
        "Marks": [90, 75, 82, 64, 45],
    }
)

with pd.ExcelWriter("test.xlsx") as writer:
    dataframe.to_excel(writer, freeze_panes=(1, 1))

freeze_panes=(1,1) especifica que el archivo de Excel tiene la fila superior congelada y la primera columna congelada.

Pandas DataFrame to_excel - freeze_panes