К сожалению, чтение в меньшем количестве строк с nrows = 1, например, не уменьшает начальное время загрузки. Следующий код найдет лист с наибольшим количеством строк, а затем сохранит его. Обратите внимание, что если к наибольшему количеству строк привязано более 1 листа, будет сохранена только последняя
read_in = pd.read_excel(items, sheet_name = None)
keys = []
for ijk in read_in.keys():
keys.append(ijk)
list_lens = []
for key in keys:
list_lens.append(len(read_in[key]))
counter = 0
for lengths in list_lens:
if lengths == max(list_lens):
if len(read_in[keys[counter]])>0:
writer = pd.ExcelWriter(filename, engine='xlsxwriter',options={'strings_to_urls': False})#this ensures you can save longer links that excel tries to make hyperlinks, you can skip it and provide the file name instead of writer below for most code
read_in[keys[counter]].to_excel(writer, index = False)
writer.close()#unnecessary if you just gave the file name in the line above instead of using the writer object
counter = counter +1
. То, что происходит здесь, заключается в том, что при чтении с листами = None их все считывает и создает словарь, в котором ключами являются имена листов, а значениями - кадры данных всего листа. Затем вы получаете доступ к каждому фрейму данных, проверяя количество столбцов. Затем код использует эту информацию для сохранения только того информационного кадра, к которому можно получить доступ, используя ключ, который заканчивается большинством столбцов