Comment puis-je exporter une liste de DataFrames dans une seule feuille de calcul Excel?
La documentation pour l' to_excel
état:
Remarques
Si vous transmettez un objet ExcelWriter existant, la feuille sera ajoutée au classeur existant. Cela peut être utilisé pour enregistrer différents DataFrames dans un classeur
writer = ExcelWriter('output.xlsx')
df1.to_excel(writer, 'sheet1')
df2.to_excel(writer, 'sheet2')
writer.save()
Suite à cela, j'ai pensé que je pourrais écrire une fonction qui enregistre une liste de DataFrames dans une feuille de calcul comme suit:
from openpyxl.writer.excel import ExcelWriter
def save_xls(list_dfs, xls_path):
writer = ExcelWriter(xls_path)
for n, df in enumerate(list_dfs):
df.to_excel(writer,'sheet%s' % n)
writer.save()
Cependant (avec une liste de deux petits DataFrames, dont chacun peut enregistrer to_excel
individuellement), une exception est levée (Edit: traceback supprimé) :
AttributeError: 'str' object has no attribute 'worksheets'
Je suppose que je n'appelle pas ExcelWriter
correctement, comment dois-je être pour faire cela?
ExcelWriter
comme gestionnaire de contexte.with ExcelWriter(xls_path) as writer: df.to_excel(writer, sheet_name)
'sheet%s' % n
peu s'il vous plaît? Que fait-il et comment ça marche?Au cas où quelqu'un aurait besoin d'un exemple de la façon de procéder avec un dictionnaire de dataframes:
from pandas import ExcelWriter def save_xls(dict_df, path): """ Save a dictionary of dataframes to an excel file, with each dataframe as a seperate page """ writer = ExcelWriter(path) for key in dict_df: dict_df[key].to_excel(writer, key) writer.save()
exemple:
save_xls(dict_df = my_dict, path = '~/my_path.xls')
la source
'%s' % key
? Voudriez-vous l'expliquer? Merci!