#python #pandas
#python #pandas
Вопрос:
Я просто хочу читать разные файлы Excel из одного zip-файла.Пожалуйста, предложите решение ошибки или альтернативный метод.
df=pd.DataFrame()
for zip_file in glob.glob("/content/drive/My Drive/file.zip"):
zf = zipfile.ZipFile(zip_file)
for f in zf.namelist():
print(f)
#f=f.replace('XLSX','xlsx')
print(zf.open(f))
dfs=pd.read_excel(zf.open(f))
df = pd.concat([df,dfs],ignore_index=True)
Следующий код выдает ошибку:
Неподдерживаемая операция: поиск
Ответ №1:
Если вы читаете только один ZIP-файл, вам не понадобится glob.glob
.
Редактировать:
Просто попробовал ваш код, и он тоже работает. В качестве примечания, было бы неплохо использовать pd.concat()
only once для списка pandas.DataFrames, поскольку в настоящее время он каждый раз создает новый фрейм данных pandas и выделяет память снова и снова.
import zipfile
import pandas as pd
dfs = []
zf = zipfile.ZipFile("files.zip")
for f in zf.namelist():
if not f.lower().endswith(".xlsx"):
continue
dfs.append(pd.read_excel(zf.open(f)))
df = pd.concat(dfs, ignore_index=True)