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.
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
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.
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.
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.