Only my last dataframe is saved in all my sheets xlsx (python)

Viewed 23

I have a loop to save all my dataframe in different sheets. The name of the sheet change in function of the df. But i realized that it was always the last df saved in each of my sheets.

import pandas as pd 
import numpy as np 
import datetime as dt 
from pathlib import Path  


pathList=sorted(Path('.').glob('*.csv'))
output="output/writer.xlsx"

def reader(file) : 
    return pd.read_csv(file,sep=";")

def extract(file,name): 
    global df
    file['dte']=pd.to_datetime(file['dte'],errors='coerce')
    file['year']=pd.DatetimeIndex(file['dte']).year

    df=file.set_index([file.groupby('year').cumcount(),'year']).unstack(1)
    df=df.sort_index(1,level=1)
    df.columns=[f"{x}_{y}" for x,y in df.columns]

names=[]
for path in pathList : 
    name=''
    readFile2=path
    readName2=str(readFile2)
    for i in readName2 : 
        if i=='.':
            break
        name=name+i
    names.append(name)

for path in pathList : 
    readFile=path
    readName=str(readFile)
    print(readFile)
    pathFile=reader(readFile)
    extract(pathFile,name)
    writer = pd.ExcelWriter(output, engine='xlsxwriter')
    for name in names:
        df.to_excel(writer,sheet_name=name)
writer.save()

EDIT : all my df are like this : EDIT : all my df are like this :

0 Answers
Related