Только мой последний кадр данных сохраняется во всех моих листах xlsx (python)

#python #excel #xlsxwriter

Вопрос:

У меня есть цикл для сохранения всех моих фреймов данных на разных листах. Название листа изменяется в зависимости от функции df. Но я понял, что это всегда был последний df, сохраненный на каждом из моих листов.

 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()

 

РЕДАКТИРОВАТЬ : все мои df похожи на это :
РЕДАКТИРОВАТЬ : все мои df похожи на это :