import os
import pandas as pd
root = os.getcwd()#获得当前py文件位置
dataPath = os.path.join(root, 'shuju')
savePath = 'result.xlsx'
dfDict = {}
for root,dirs,files in os.walk(dataPath):
for f in files:
print(os.path.join(root, f))
filePath = os.path.join(root, f)
df = pd.read_csv(filePath,header=5, delimiter=",", encoding='gbk')
dfDict[f] = df
writer = pd.ExcelWriter(savePath)
count = 1
for k in dfDict.keys():
print(k)
data = dfDict[k].iloc[1001:3102]
usecols = ['Elapsed Time', 'wendu8', 'wendu7', 'wendu5', 'wendu2', 'wendu4', 'wendu1']
temp = data[usecols] # 注意中括号
df.to_excel('./result.xlsx', sheet_name=f'{count}', index = False)
count +=1
writer.save()
代码中这句有误,df.to_excel('./result.xlsx', sheet_name=f'{count}', index = False),因为要将数据保存到多个工作表中,已先定义了一个ExcelWriter对象,指定了文件路径,在后面使用dataFrame.to_excel()方法保存数据时,第一个参数应该是现有的ExcelWriter即writer,而不应该是一个路径,因为用一个固定路径时每次循环写入都将上次写入的内容删除,如果你在循环内用writer.save()保存的话,只能得到最后一张表格,达不到保存多张表格的目的。把那句改为temp.to_excel(writer, sheet_name=f'{count}', index = False)即可。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632
非常感谢您使用有问必答服务,为了后续更快速的帮您解决问题,现诚邀您参与有问必答体验反馈。您的建议将会运用到我们的产品优化中,希望能得到您的支持与协助!
速戳参与调研>>>https://t.csdnimg.cn/Kf0y
你的excel是不是空的哦
At least one sheet must be visible:意思是没有一个能看到的表格。
换一个xls扩展名的文件试试。