в вашем цикле for вы пишете для каждой итерации df
, поэтому вы получите только окончательный файл,
, что вам нужно сделать, это delcare список перед рукой, и добавьте это,
, так как вы вызвали glob, давайте использовать это также.
files = glob.glob(os.path.join(os.getcwd()) + '\*.xlsx')
dfs = [pd.read_excel(f,sheet_name='Sheet1') for f in files]
df = pd.concat(dfs)
, если вы хотите добавить имя файла в df,
files = glob.glob(os.path.join(os.getcwd()) + '\*.xlsx')
dfs = [pd.read_excel(f,sheet_name='Sheet1') for f in files]
file_names = [os.path.basename(f) for f in files]
df = pd.concat(dfs,keys=file_names)
Использование модуля Pathlib(рекомендуется Python 3.4 +)
from pathlib import Path
files = [f for f in Path.cwd().glob('*.xlsx')]
dfs = [pd.read_excel(f,sheet_name='Sheet1')]
file_names = [f.stem for f in files]
df = pd.concat(dfs,keys=file_names)
или как один вкладыш:
df = pd.concat([pd.read_excel(f) for f in Path.cwd().glob('*.xlsx')],keys=[f.stem for f in Path.cwd().glob('*.xlsx')],sort=False)