Скажем, у меня есть папка с несколькими файлами Excel с расширением xlsx
или xls
, они имеют один и тот же столбец заголовка a, b, c, d, e
, за исключением некоторого пустого листа в нескольких файлах.
Я хочу перебрать всефайлы и листы (кроме пустых листов) и объединить их в один лист из одного файла output.xlsx
.
Я перебрал все файлы Excel и добавил их в один файл, но как я могу перебрать все листы каждого файла, если у них более одного листа?
Мне нужно объединить два блока кода ниже в один.Спасибо за вашу помощь.
import pandas as pd
import numpy as np
import glob
path = os.getcwd()
files = os.listdir(path)
files
df = pd.DataFrame()
# method 1
excel_files = [f for f in files if f[-4:] == 'xlsx' or f[-3:] == 'xls']
excel_files
for f in excel_files:
data = pd.read_excel(f)
df = df.append(data)
# method 2
for f in glob.glob("*.xlsx" or "*.xls"):
data = pd.read_excel(f)
df = df.append(data, ignore_index=True)
# save the data frame
writer = pd.ExcelWriter('output.xlsx')
df.to_excel(writer, 'sheet1')
writer.save()
За один файл для объединения нескольких листов:
file = pd.ExcelFile('file.xlsx')
names = file.sheet_names # read all sheet names
df = pd.concat([file.parse(name) for name in names])