Неподдерживаемая операция: поиск при чтении файлов Excel из zip-файла

#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)