Pandas DataFrame DataFrame.to_excel() Função

Jinku Hu 30 janeiro 2023
  1. Sintaxe de pandas.DataFrame.to_excel()
  2. Códigos de exemplo: Pandas DataFrame.to_excel()
  3. Códigos de exemplo: Pandas DataFrame.to_excel() Com ExcelWriter
  4. Códigos de exemplo: Pandas DataFrame.to_excel para anexar a um arquivo Excel existente
  5. Códigos de exemplo: Pandas DataFrame.to_excel para Escrever Múltiplas Folhas
  6. Códigos de exemplo: Pandas DataFrame.to_excel com o parâmetro header
  7. Códigos de exemplo: Pandas DataFrame.to_excel Com index=False
  8. Códigos de exemplo: Pandas DataFrame.to_excel com index_label Parâmetro
  9. Códigos de exemplo: Pandas DataFrame.to_excel Com float_format Parâmetro
  10. Códigos de exemplo: Pandas DataFrame.to_excel com freeze_panes Parâmetro
Pandas DataFrame DataFrame.to_excel() Função

Python Pandas DataFrame.to_excel(values) descarrega os dados do dataframe para um arquivo Excel, em uma única planilha ou em múltiplas planilhas.

Sintaxe 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 caminho do arquivo Excel ou o pandas.ExcelWriter existente
sheet_name Nome da chapa para a qual o dataframe é depositado
na_rep Representação de valores nulos.
float_format Formato dos números flutuantes
header Especifique o cabeçalho do arquivo Excel gerado.
index Se True, escreva o dataframe index para o Excel.
index_label Etiqueta da coluna para a coluna de índice.
startrow A linha superior da célula esquerda para escrever os dados para o Excel.
Padrão é 0.
startcol A coluna superior da célula esquerda para escrever os dados no Excel.
Default é 0.
engine Parâmetro opcional para especificar o motor a ser utilizado. openenyxl ou xlswriter.
merge_cells Fundir MultiIndex a células fundidas
encoding Codificação do arquivo Excel de saída. Somente necessário se for utilizado o xlwt writer, outros escritores suportam o Unicode nativamente.
inf_rep Representação do infinito. O padrão é inf.
verbose Se True, os registros de erros consistem em mais informações
freeze_panes Especifique o bottommost e o mais à direita do painel congelado. É de base única, mas não de base zero.

Retornar

Ninguém

Códigos de exemplo: 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')

O autor da chamada DataFrame é

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

O test.xlsx é criado.

Pandas DataFrame to_excel

Códigos de exemplo: Pandas DataFrame.to_excel() Com ExcelWriter

O exemplo acima utiliza o caminho do arquivo como o excel_writer, e também poderíamos utilizar o pandas.Excelwriter para especificar o arquivo excel que o dataframe despeja.

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 exemplo: Pandas DataFrame.to_excel para anexar a um arquivo 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")

Devemos especificar o motor como openpyxl mas não como xlsxwriter padrão; caso contrário, teremos o erro que xlswriter não suporta o modo append.

ValueError: Append mode is not supported with xlsxwriter!

O openpyxl deve ser instalado e importado porque não faz parte do pandas.

pip install openpyxl

Pandas DataFrame to_excel - folha anexa

Códigos de exemplo: Pandas DataFrame.to_excel para Escrever Múltiplas Folhas

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")

Ele descarta o objeto do dataframe tanto para Sheet1 quanto para Sheet2.

Você também pode escrever dados diferentes em várias folhas se especificar o 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 exemplo: Pandas DataFrame.to_excel com o 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"])

O cabeçalho padrão no arquivo Excel criado é o mesmo que os nomes de coluna do dataframe. O parâmetro header especifica o novo cabeçalho para substituir o cabeçalho padrão.

Pandas DataFrame to_excel - mudar o nome do cabeçalho

Códigos de exemplo: Pandas DataFrame.to_excel Com 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() gera um arquivo Excel sem linha de cabeçalho.

Códigos de exemplo: Pandas DataFrame.to_excel com index_label Parâmetro

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' define o nome da coluna do índice para ser id.

Pandas DataFrame to_excel - define o nome da coluna a ser index

Códigos de exemplo: Pandas DataFrame.to_excel Com float_format Parâmetro

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 o número flutuante para ter dois dígitos flutuantes.

Códigos de exemplo: Pandas DataFrame.to_excel com freeze_panes Parâmetro

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 o arquivo excel tem a linha superior congelada e a primeira coluna congelada.

Pandas DataFrame to_excel - freeze_panes

Autor: Jinku Hu
Jinku Hu avatar Jinku Hu avatar

Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.

LinkedIn Facebook

Artigo relacionado - Pandas DataFrame