首页 > 解决方案 > 只有我的最后一个数据框保存在我的所有工作表 xlsx(python)中

问题描述

我有一个循环可以将所有数据框保存在不同的工作表中。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 都是这样的:

标签: pythonexcelxlsxwriter

解决方案


推荐阅读