3 votes

Pandas.ExcelWriter KeyError lors de l'utilisation de la méthode writer.sheets

Aidez-moi, je ne sais pas pourquoi cette erreur se produit. J'ai utilisé ce code auparavant sans aucun problème. J'espère que ce n'est pas quelque chose de stupide. J'apprécie toujours l'aide.

Versions :

python 3.6

pd 0.23.0

xlsxwriter 1.0.4

writer = pd.ExcelWriter('Output.xlsx', engine='xlsxwriter')
workbook  = writer.book
worksheet = writer.sheets['Sheet1']

Sortie :

Traceback (most recent call last):
File "/opt/eclipse/dropins/plugins/org.python.pydev.core_7.2.0.201903251948/pysrc/_pydevd_bundle/pydevd_exec2.py", line 3, in Exec
exec(exp, global_vars, local_vars)
File "<console>", line 1, in <module>
KeyError: 'Sheet1'

7voto

mauve Points 1554

Vous n'avez pas créé de feuille 1.

de ici voici un exemple :

import pandas as pd

# Create a Pandas dataframe from the data.
df = pd.DataFrame({'Data': [10, 20, 30, 20, 15, 30, 45]})

# Create a Pandas Excel writer using XlsxWriter as the engine.
writer = pd.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')

# Convert the dataframe to an XlsxWriter Excel object.
df.to_excel(writer, sheet_name='Sheet1') ***#this is where you create Sheet 1***

# Get the xlsxwriter objects from the dataframe writer object.
workbook  = writer.book
worksheet = writer.sheets['Sheet1'] ***#here is where you select it***

2voto

Alireza815 Points 21

Vous devez ajouter une feuille à votre fichier excel avant de l'utiliser comme suit :

    excel_writer = pandas.ExcelWriter('f2.xlsx',mode ='w',engine='xlsxwriter')
    workbook  = excel_writer.book
    excel_writer.sheets={'Sheet1':workbook.add_worksheet()}
    worksheet = excel_writer.sheets['Sheet1']

0voto

virgilus Points 101

Si vous utilisez Pandas, vous devez utiliser la fonction .to_excel fonction. Ce serait plus facile ! :)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X