我的问题很简单,我只是想使用 pandas 将位于本地的 excel 文件读入数据框。
filename = 'test.xlsx'
df = pd.read_excel(filename)
xlsx 文件有多个工作表,但我得到相同的 “ValueError:没有足够的值来解压(预期 2,得到 1)”,即使在指定工作表名称时也是如此。
Traceback (most recent call last):
File "", line 1, in pd.read_excel(filename)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\excel.py", line 200, in read_excel io = ExcelFile(io, engine=engine)
File "C:\ProgramData\Anaconda3\lib\site-packages\pandas\io\excel.py", line 257, in init self.book = xlrd.open_workbook(io)
File "C:\ProgramData\Anaconda3\lib\site-packages\xlrd__init__.py", line 422, in open_workbook ragged_rows=ragged_rows,
File "C:\ProgramData\Anaconda3\lib\site-packages\xlrd\xlsx.py", line 833, in open_workbook_2007_xml x12sheet.process_stream(zflo, heading)
File "C:\ProgramData\Anaconda3\lib\site-packages\xlrd\xlsx.py", line 553, in own_process_stream self.do_merge_cell(elem)
File "C:\ProgramData\Anaconda3\lib\site-packages\xlrd\xlsx.py", line 609, in do_merge_cell first_cell_ref, last_cell_ref = ref.split(':')
ValueError: not enough values to unpack (expected 2, got 1)
编辑:我创建了一个新的 Excel 文件,并将两个选项卡从原始文件复制到新的 Excel 文件中。 Pandas read_excel 使用新文件。但是,我希望能够从原件开始工作。
最佳答案
我仍然不完全理解这个问题的机制,但我能够解决它。我使用 urllib.requests 中的 urlopen 将文件下载到本地,并使用 openpyxl 加载工作簿,然后加载我想要的工作表。该工作表顶部有 5 行合并单元格,底部有 5 行合并单元格。然后,我使用 unmerge_cells 方法取消合并仅合并单元格的最后 5 行。然后我用修改后的工作表再次保存了工作簿。然后我可以使用 skiprows=5 参数运行 pd.read_excel。它是这样工作的。
关于python - Pandas read_excel 返回 'not enough values to unpack (expected 2, got 1)',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48813490/