Объединение множества Excel файлов в один
Нужно объединить более сотни .xlsx файлов в один.
Файлы .xlxs однородны, 1 строка - шапка, далее данные с одинаковым кол-вом столбцов.
Сейчас так:
import os
import pandas as pd
import glob
import xlsxwriter
in_3 = 'my_path/concat_excel/*.xlsx'
files = glob.glob(in_3)
# print(files)
df = pd.concat([pd.read_excel(f, header=None) for f in files], ignore_index=True)
df.to_excel('final.xlsx', engine='xlsxwriter')
with pd.ExcelWriter('final.xlsx') as writer:
df.to_excel()
На выходе ошибка:
File "C:---path---\Python\Python37-32\lib\site-packages\xlrd\book.py", line 616, in biff2_8_load raise XLRDError("File size is 0 bytes") xlrd.biffh.XLRDError: File size is 0 bytes
Как решить?
Может быть не на Python, или есть варианты проще это сделать?
Ответы (1 шт):
Автор решения: MaxU
→ Ссылка
Попробуйте так:
from pathlib import Path
import pandas as pd
path = Path("my_path/concat_excel")
min_excel_file_size = 100
df = pd.concat([pd.read_excel(f)
for f in path.glob("*.xlsx")
if f.stat().st_size >= min_excel_file_size],
ignore_index=True)
df.to_excel('/path/to/final.xlsx')