206 Keys in my dictionary

J'ai un dictionnaire avec 206 éléments avec des clés comme indiqué dans l'image. Chaque valeur de la clé est un bloc de données avec 26 lignes et 4 colonnes. Je souhaite stocker chaque élément de mon dictionnaire sous la forme d'une feuille dans un fichier Excel. J'ai donc besoin d'un fichier Excel contenant 206 feuilles.

voltage = {}
for sheet in input.sheet_names:
voltage[sheet] = pd.read_excel(input, sheet)

for sheet in voltage:
l = ( round((len(voltage[sheet]))/25) )
voltage[sheet]['DT'] = l
voltage[sheet] = voltage[sheet][0::l]

writer = pd.ExcelWriter('excelfromcode.xlsx')
for sheet in voltage:
voltage[sheet].to_excel(writer, sheet_name=sheet[5:1035:5])
writer.save()

J'ai essayé ceci (les 4 dernières lignes correspondent à la conversion du dictionnaire en fichier Excel). Mais seule la première feuille est enregistrée dans le fichier Excel. Il ne s'agit pas d'itérer et d'enregistrer tous les 206 fichiers. Veuillez me faire part des modifications que je dois apporter au code.

Remarque ** 'Writer.save' est écrit en dehors de la boucle 'for'

Je vous remercie.

0
Pradyumna TK 3 sept. 2020 à 16:30

2 réponses

Meilleure réponse

Je pense que tout ce que tu as à faire c'est

writer=pd.ExcelWriter("output.xlsx") 
for key in volt:
    volt[key].to_excel(writer,sheet_name=key)

writer.save()
writer.close()

?

1
Gingerhaze 3 sept. 2020 à 13:56
writer = pd.ExcelWriter('excelfromcode.xlsx')
for sheet in voltage:
voltage[sheet].to_excel(writer, sheet_name=sheet[:206], index=False)

writer.save()

Je viens de changer les noms de feuille de la feuille [5: 1035: 5] ---> feuille [0: 206]. Comme il connaît déjà les noms des feuilles (5,10,15,20 .... 1035), il suffit de donner le nombre de feuilles (0 à 206) au lieu d'essayer de les nommer à nouveau.

0
Pradyumna TK 5 sept. 2020 à 03:26