使用Python导入Excel表格并使用Pandas进行数据处理

3

我是Python的新手,遇到了一个问题。 我正在尝试使用pandas导入Excel文件,并且我正在使用VS Code。

import pandas as pd

data = pd.read_excel(r'D:\Python\user.xlsx')
print(data)

我已经安装了xlrd,但是我仍然遇到以下错误:

Traceback (most recent call last):
  File "d:\Python\import-excel.py", line 24, in <module>
    data = pd.read_excel(r'D:\Python\user.xlsx')
  File "D:\Python\venv\lib\site-packages\pandas\util\_decorators.py", line 296, in wrapper
    return func(*args, **kwargs)
  File "D:\Python\venv\lib\site-packages\pandas\io\excel\_base.py", line 304, in read_excel
    io = ExcelFile(io, engine=engine)
  File "D:\Python\venv\lib\site-packages\pandas\io\excel\_base.py", line 867, in __init__
    self._reader = self._engines[engine](self._io)
  File "D:\Python\venv\lib\site-packages\pandas\io\excel\_xlrd.py", line 22, in __init__
    super().__init__(filepath_or_buffer)
  File "D:\Python\venv\lib\site-packages\pandas\io\excel\_base.py", line 353, in __init__
    self.book = self.load_workbook(filepath_or_buffer)
  File "D:\Python\venv\lib\site-packages\pandas\io\excel\_xlrd.py", line 37, in load_workbook
    return open_workbook(filepath_or_buffer)
  File "D:\Python\venv\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 supported

有人能帮我吗?


1
尝试更改引擎参数 pd.read_excel(r'D:\Python\user.xlsx',engine='openpyxl') - Umar.H
1
谢谢 @Manakin,但已经完成并得到了另一个错误:**ValueError: Unknown engine: <module 'openpyxl' from 'D:\Python\venv\lib\site-packages\openpyxl\__init__.py'>**。 - Minecraft_Json
2
你可能需要先安装 openpyxl,命令为 pip install openypyxl。查看其他人遇到类似问题的解决方案,这似乎是一个很大的破坏性变化。 - Umar.H
啊哈,我发现了。我写成了engine=openpyxl而不是engine='openpyxl' :-))) 还没有**''**。谢谢。 - Minecraft_Json
1个回答

7

正如其他成员所指出的,xlrd已经停止支持.xls以外的格式。

建议使用另一个库,比如openpyxl

如用户Chris Withers在他的答案中建议的:

  1. Install openpyxl: pip install openpyxl

  2. Implement your code as:

    import pandas as pd
    
    data = pd.read_excel(r'D:\Python\user.xlsx', engine='openpyxl')
    
    print(data)
    

希望这对你有用!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接