我有一个近30个xlsx文件的列表,它们都是相同格式的。我已经有了一段有效的数据清洗代码,并且希望将它们全部清洗并保存到单个工作簿中的各个工作表中。我想用循环来完成这个任务,但好像缺少了什么。我看到了一些函数可以将多个工作表保存到工作簿中,但我希望使用read_excel、清洗数据框并将其保存到工作表,然后再删除数据框。现在问题是,它只返回列表中最后一个工作表在新Excel文档中。
BOX = [
"aa1",
"aa2",
"aa3"]
for B in BOX:
filename = B+".xls"
#create data frame
BDF = pd.read_excel(r'C:\Projects\BOXES\\' + filename)
#clean data frame
BDF = BDF.dropna(how="all")
BDF['Total Cost'] = BDF['Total Cost'].str.replace('.', '')
BDF.columns = ['LVL', 'PN', 'Leadtime', 'Description', 'Ext QTY']
BDF.PN = BDF.PN.str.strip()
sheetname=B
#save to sheet
with pd.ExcelWriter(r'C:\Projects\BOXES\BOXED.xlsx') as writer:
BDF.to_excel(writer, sheet_name=B, index=False)
#delete data frame before repeating
del(BDF)
del(B)