Por favor vea mi código abajo:
import pandas df = pandas.read_excel('cat.xlsx')Después de ejecutar eso, me da el siguiente error:
Traceback (most recent call last): File "d:\OneDrive\桌面\practice.py", line 4, in <module> df = pandas.read_excel('cat.xlsx') File "D:\python\lib\site-packages\pandas\util\_decorators.py", line 296, in wrapper return func(*args, **kwargs) File "D:\python\lib\site-packages\pandas\io\excel\_base.py", line 304, in read_excel io = ExcelFile(io, engine=engine) File "D:\python\lib\site-packages\pandas\io\excel\_base.py", line 867, in __init__ self._reader = self._engines[engine](self._io) File "D:\python\lib\site-packages\pandas\io\excel\_xlrd.py", line 22, in __init__ super().__init__(filepath_or_buffer) File "D:\python\lib\site-packages\pandas\io\excel\_base.py", line 353, in __init__ self.book = self.load_workbook(filepath_or_buffer) File "D:\python\lib\site-packages\pandas\io\excel\_xlrd.py", line 37, in load_workbook return open_workbook(filepath_or_buffer) File "D:\python\lib\site-packages\xlrd\__init__.py", line 170, in open_workbook raise XLRDError(FILE_FORMAT_DESCRIPTIONS[file_format]+'; not supported') xlrd.biffh.XLRDError: Excel xlsx file; not supportedIntenté desinstalar y reinstalar Pandas con el comando pip. El error persiste. Tengo xlrd 2.0.1 y Pandas 1.1.5 instalados.
Como se indica en el correo electrónico de lanzamiento , vinculado desde el tweet de lanzamiento y anotado en una gran advertencia naranja que aparece en la página principal de la documentación , y menos naranja pero aún presente en el archivo Léame en el repositorio y el lanzamiento en pypi :
xlrd ha eliminado explícitamente la compatibilidad con todo lo que no sean archivos xls.
Esto se debe a posibles vulnerabilidades de seguridad relacionadas con el uso de xlrd versión 1.2 o anterior para leer archivos .xlsx .
En tu caso, la solución es:
openpyxl : https://openpyxl.readthedocs.io/en/stable/ pandas.read_excel('cat.xlsx', engine='openpyxl')Editar: actualmente, pandas> = 1.2 soluciona este problema. ( Notas de la versión )
La última versión de xlrd (2.0.1) solo admite archivos .xls.
Si está preparado para correr el riesgo de posibles vulnerabilidades de seguridad y de analizar incorrectamente ciertos archivos, este error se puede resolver instalando una versión anterior de xlrd.
Use el siguiente comando en un indicador de shell o cmd:
pip install xlrd==1.2.0La mejor manera es probablemente hacer que openpyxl sea su lector predeterminado para read_excel() en caso de que tenga un código antiguo que se rompió debido a esta actualización.
Puede hacerlo cambiando los valores predeterminados del método yendo a _base.py dentro de la carpeta pandas del entorno. Puedes encontrarlo de la siguiente manera:
import pandas as pd print(pd.__file__)Abra el archivo y busque
def read_excel(...)Encontrará el valor predeterminado para el motor. Cámbielo a 'openpyxl'
Sugerencia/respuesta original aquí: https://stackoverflow.com/a/69577391/7151338