У меня около 20 ++ файлов xlsx, внутри каждого файла xlsx может быть разное количество рабочих листов.Но, слава богу, все столбцы - некоторые во всех таблицах и во всех файлах xlsx.Ссылаясь на здесь", я получил некоторую идею. Я пытался несколькими способами импортировать и добавлять все файлы Excel (все рабочие таблицы) в один фрейм данных (около 4 миллионов строк записей).
Примечание: я также проверил здесь", но он включает в себя только уровень файла, файл моих копий и до уровня листа.
Я пробовал ниже код
# import all necessary package
import pandas as pd
from pathlib import Path
import glob
import sys
# set source path
source_dataset_path = "C:/Users/aaa/Desktop/Sample_dataset/"
source_dataset_list = glob.iglob(source_dataset_path + "Sales transaction *")
for file in source_dataset_list:
#xls = pd.ExcelFile(source_dataset_list[i])
sys.stdout.write(str(file))
sys.stdout.flush()
xls = pd.ExcelFile(file)
out_df = pd.DataFrame() ## create empty output dataframe
for sheet in xls.sheet_names:
sys.stdout.write(str(sheet))
sys.stdout.flush() ## # View the excel files sheet names
#df = pd.read_excel(source_dataset_list[i], sheet_name=sheet)
df = pd.read_excel(file, sheetname=sheet)
out_df = out_df.append(df) ## This will append rows of one dataframe to another(just like your expected output)
Вопрос:
Мой подход - сначала прочитать каждый файл Excel и получить список листов внутри него, затем загрузить листы и добавить все листы.Циклирование кажется не очень эффективным, особенно когда увеличение размера данных для каждого добавления.
Есть ли другой эффективный способ импорта и добавления всех листов из нескольких файлов Excel?