Я не уверен на 100%, полностью ли я понимаю ваш вопрос, но я читаю его так, как вы хотите. 1 Выведите файл Excel на каждый ввод уникального имени листа Excel.Если так, то попробуйте это:
import os
import pandas as pd
files = os.listdir("XXXX")
print("All files in the given directory are :", files)
files_xlsx = [f for f in files if f[-4:] == 'xlsx']
print("Excel files in this directory are :", files_xlsx)
y = "XXXX"
excels = [pd.ExcelFile(y +'\\'+ name) for name in files_xlsx]
for each in excels:
sheets =pd.ExcelFile(each).sheet_names
print ("Sheet names in these excel files are : ", sheets)
NSheets = len(sheets)
print ("Number of different Sheet names in these excel files are : ", NSheets)
for z in sheets:
frames = list()
for x in excels:
try:
x.sheet_names.index(z)
frames.append(x.parse(x.sheet_names.index(z), header=None, index_col=None))
frames[1:] = [df[1:] for df in frames[1:]] # keep only header from first file for each sheetname
combined = pd.concat(frames)
combined.to_excel("XXXX\\Output_" + z + ".xlsx", header=False, index=False)
except:
pass
Если я правильно понял ваш вопрос, тогда это должно сделать то, что вы хотите.
PS: Я добавил обратно строку, ранее удаленную (сохраняятолько первый заголовок) и он, кажется, делает так, как хотелось бы для моего небольшого тестового образца