5
respostas

erro no método pd.read_excel()

---------------------------------------------------------------------------
ModuleNotFoundError                       Traceback (most recent call last)
~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\io\excel.py in __init__(self, io, **kwds)
    260         try:
--> 261             import xlrd
    262         except ImportError:

ModuleNotFoundError: No module named 'xlrd'

During handling of the above exception, another exception occurred:

ImportError                               Traceback (most recent call last)
<ipython-input-6-6d13ae696604> in <module>
----> 1 df_xlsx = pd.read_excel('dados/aluguel.xlsx')
      2 df_xlsx

~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs)
    116                 else:
    117                     kwargs[new_arg_name] = new_arg_value
--> 118             return func(*args, **kwargs)
    119         return wrapper
    120     return _deprecate_kwarg

~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\io\excel.py in read_excel(io, sheet_name, header, skiprows, skip_footer, index_col, names, usecols, parse_dates, date_parser, na_values, thousands, convert_float, converters, dtype, true_values, false_values, engine, squeeze, **kwds)
    228 
    229     if not isinstance(io, ExcelFile):
--> 230         io = ExcelFile(io, engine=engine)
    231 
    232     return io._parse_excel(

~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\io\excel.py in __init__(self, io, **kwds)
    261             import xlrd
    262         except ImportError:
--> 263             raise ImportError(err_msg)
    264         else:
    265             ver = tuple(map(int, xlrd.__VERSION__.split(".")[:2]))

ImportError: Install xlrd >= 0.9.0 for Excel support
5 respostas

Bom dia Matheus, tudo bem? Espero que sim!

Para corrigir o problema, escreva em uma célula:

!pip install xlrd

Caso não funcione, instale a biblioteca para leitura de dados Excel mais novos xlsx, a biblioteca se chama openpyxl:

!pip install openpyxl

Estou à disposição. Bons estudos!

Agradeço pelo auxílio João, mas ainda não funcionou... Segue log:

Obs.: reiniciei o Kernel após adição das bibliotecas

---------------------------------------------------------------------------
XLRDError                                 Traceback (most recent call last)
<ipython-input-4-6d13ae696604> in <module>
----> 1 df_xlsx = pd.read_excel('dados/aluguel.xlsx')
      2 df_xlsx

~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs)
    116                 else:
    117                     kwargs[new_arg_name] = new_arg_value
--> 118             return func(*args, **kwargs)
    119         return wrapper
    120     return _deprecate_kwarg

~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\io\excel.py in read_excel(io, sheet_name, header, skiprows, skip_footer, index_col, names, usecols, parse_dates, date_parser, na_values, thousands, convert_float, converters, dtype, true_values, false_values, engine, squeeze, **kwds)
    228 
    229     if not isinstance(io, ExcelFile):
--> 230         io = ExcelFile(io, engine=engine)
    231 
    232     return io._parse_excel(

~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\io\excel.py in __init__(self, io, **kwds)
    292             self.book = xlrd.open_workbook(file_contents=data)
    293         elif isinstance(self._io, compat.string_types):
--> 294             self.book = xlrd.open_workbook(self._io)
    295         else:
    296             raise ValueError('Must explicitly set engine if not passing in'

~\Anaconda3\envs\alura_pandas\lib\site-packages\xlrd\__init__.py in open_workbook(filename, logfile, verbosity, use_mmap, file_contents, encoding_override, formatting_info, on_demand, ragged_rows, ignore_workbook_corruption)
    168     # files that xlrd can parse don't start with the expected signature.
    169     if file_format and file_format != 'xls':
--> 170         raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported')
    171 
    172     bk = open_workbook_xls(

XLRDError: Excel xlsx file; not supported

Ok, vamos tentar passar como parâmetro a engine a ser utilizada pela função read_excel:

df_xlsx = pd.read_excel('dados/aluguel.xlsx', engine = "openpyxl")

Certifique-se de que instalou a biblioteca openpyxl com o !pip install openpyxl.

Os arquivos xlsx novos do Excel não funcionam mais com a biblioteca xlrd, e no erro que foi apresentado está sendo utilizado ele para a leitura. Vamos tentar fazer com que ele use a engine adequada manualmente.

import pandas as pd

!pip install lxml
!pip install openpyxl
!pip install xlrd
​

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-11-53ee3be32c1d> in <module>
----> 1 df_xlsx = pd.read_excel('dados/aluguel.xlsx', engine = "openpyxl")
      2 df_xlsx

~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\util\_decorators.py in wrapper(*args, **kwargs)
    116                 else:
    117                     kwargs[new_arg_name] = new_arg_value
--> 118             return func(*args, **kwargs)
    119         return wrapper
    120     return _deprecate_kwarg

~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\io\excel.py in read_excel(io, sheet_name, header, skiprows, skip_footer, index_col, names, usecols, parse_dates, date_parser, na_values, thousands, convert_float, converters, dtype, true_values, false_values, engine, squeeze, **kwds)
    228 
    229     if not isinstance(io, ExcelFile):
--> 230         io = ExcelFile(io, engine=engine)
    231 
    232     return io._parse_excel(

~\Anaconda3\envs\alura_pandas\lib\site-packages\pandas\io\excel.py in __init__(self, io, **kwds)
    276 
    277         if engine is not None and engine != 'xlrd':
--> 278             raise ValueError("Unknown engine: {engine}".format(engine=engine))
    279 
    280         # If io is a url, want to keep the data as bytes so can't pass

ValueError: Unknown engine: openpyxl

Vou pedir para que você atualize a sua biblioteca pandas para a versão mais recente, aqui no meu computador está funcionando normalmente, usando uma outra base de dados em arquivo xlsx:

read_excel

Escreva o comando abaixo em uma célula e rode a célula, ela pode demorar um pouco a carregar porque estará instalando a biblioteca:

!pip install pandas==1.2.3

Se continuar a dar algum problema me avise.