Eu uso o pandas para escrever arquivos do Excel da seguinte maneira:
import pandas
writer = pandas.ExcelWriter('Masterfile.xlsx')
data_filtered.to_excel(writer, "Main", cols=['Diff1', 'Diff2'])
writer.save()
Masterfile.xlsx já consiste em várias guias diferentes. No entanto, ele ainda não contém "Principal".
O Pandas grava corretamente na página "Principal", mas infelizmente também exclui todas as outras guias.
python
excel
python-2.7
pandas
BP_
fonte
fonte
ExcelReader
Respostas:
O Pandas docs diz que usa openpyxl para arquivos xlsx. Uma rápida olhada no código
ExcelWriter
dá uma pista de que algo assim pode funcionar:fonte
openpyxl
detalhes suficientes: que tipo de fórmulas você possui, como os dados são atualizados, como eles quebram as fórmulas. Agora eu simplesmente não posso ajudar, muitas coisas que eu não sei.Aqui está uma função auxiliar:
NOTA: para Pandas <0.21.0, substitua
sheet_name
porsheetname
!Exemplos de uso:
fonte
Com a
openpyxl
versão2.4.0
e apandas
versão0.19.2
, o processo criado por @ski fica um pouco mais simples:fonte
Começando no pandas 0,24, você pode simplificar isso com o
mode
argumento de palavra - chave deExcelWriter
:fonte
mode = 'a'
adiciona mais planilhas, mas e se eu quiser sobrescrever os dados nas planilhas existentes?Pergunta antiga, mas acho que algumas pessoas ainda procuram por isso - então ...
Acho esse método bom porque todas as planilhas são carregadas em um dicionário de pares de nome de planilha e dataframe, criado por pandas com a opção sheetname = None. É simples adicionar, excluir ou modificar planilhas entre a leitura da planilha no formato dict e a gravação do dicionário. Para mim, o xlsxwriter funciona melhor do que o openpyxl para esta tarefa específica em termos de velocidade e formato.
Nota: versões futuras do pandas (0.21.0+) irão alterar o parâmetro "sheetname" para "sheet_name".
Para o exemplo da pergunta de 2013:
fonte
Eu sei que este é um segmento mais antigo, mas este é o primeiro item que você encontra ao pesquisar, e as soluções acima não funcionam se você precisar manter gráficos em uma pasta de trabalho que você já criou. Nesse caso, o xlwings é a melhor opção - ele permite que você escreva para o livro do Excel e mantém os gráficos / dados do gráfico.
exemplo simples:
fonte
Existe uma solução melhor no pandas 0,24:
antes:
depois de:
então atualize seus pandas agora:
fonte
XslxWriter
opção.engine=openpyxl
, pois apenas adicionará uma nova planilha chamadathe only worksheet1
Isso funciona perfeitamente bem, a única coisa é que a formatação do arquivo mestre (arquivo ao qual adicionamos uma nova folha) é perdida.
fonte
O "keep_date_col" espero ajudá-lo
fonte
fonte