Pandas read_excel 返回 'not enough values to unpack (expected 2, got 1)'

Pandas read_excel returning 'not enough values to unpack (expected 2, got 1)'

我的问题很简单,我只是想使用 pandas.

将位于本地的 excel 文件读入数据帧
filename = 'test.xlsx'
df = pd.read_excel(filename)

xlsx 文件有多个工作表,但即使指定工作表名称,我也得到相同的 "ValueError: not enough values to unpack (expected 2, got 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加载工作簿,然后加载我想要的sheet。 sheet 顶部有 5 行合并单元格,底部有 5 行合并单元格。然后,我使用 unmerge_cells 方法 un-merged 合并单元格的最后 5 行 。然后我用修改后的 sheet 再次保存了工作簿。然后我可以使用 skiprows=5 参数 运行 pd.read_excel 。它是这样工作的。

可能的解决方法如下:

import openpyxl

wb1 = openpyxl.load_workbook('filename.xlsx') ## opening the file
sheets_list = list(wb1.get_sheet_names()) ## getting all sheets' streams
active_sheet = wb1.get_sheet_by_name(sheets_list[0]) ## picking up the first sheet

df1 = pd.DataFrame(active_sheet.values)

df1 = df1.iloc[3 : , :] ## skipping first three rows assuming merged cells are in 
                        ## this range