Skip to content

Commit 2ed0db2

Browse files
committed
TST: read_excel: test multiindex headers with skip rows between.
read_excel function has several bugs regarding how it handles combinations of header, skiprows and index_col arguments. The tests here showcase some of them.
1 parent 236d89b commit 2ed0db2

File tree

2 files changed

+50
-0
lines changed

2 files changed

+50
-0
lines changed
12.8 KB
Binary file not shown.

pandas/tests/io/excel/test_readers.py

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1759,3 +1759,53 @@ def test_corrupt_files_closed(self, engine, tmp_excel):
17591759
pd.ExcelFile(tmp_excel, engine=engine)
17601760
except errors:
17611761
pass
1762+
1763+
def test_mi_header_skiprows1(self, engine, read_ext):
1764+
if engine is None and read_ext == ".xlsx":
1765+
with open("test_mi_holes.xlsx", "rb") as f:
1766+
expected = pd.read_excel(f,
1767+
sheet_name='expected',
1768+
header=[0, 1],
1769+
index_col=[0, 1])
1770+
1771+
with open("test_mi_holes.xlsx", "rb") as f:
1772+
actual = pd.read_excel(f,
1773+
sheet_name='skiprows1',
1774+
skiprows=1,
1775+
header=[0, 1],
1776+
index_col=[0, 1])
1777+
1778+
tm.assert_frame_equal(expected, actual)
1779+
1780+
def test_mi_header_hole(self, engine, read_ext):
1781+
if engine is None and read_ext == ".xlsx":
1782+
with open("test_mi_holes.xlsx", "rb") as f:
1783+
expected = pd.read_excel(f,
1784+
sheet_name='expected',
1785+
header=[0, 1],
1786+
index_col=[0, 1])
1787+
1788+
with open("test_mi_holes.xlsx", "rb") as f:
1789+
actual = pd.read_excel(f,
1790+
sheet_name='header_hole',
1791+
skiprows=[1],
1792+
header=[0, 1],
1793+
index_col=[0, 1])
1794+
1795+
tm.assert_frame_equal(expected, actual)
1796+
1797+
def test_mi_header_and_index_holes(self, engine, read_ext):
1798+
if engine is None and read_ext == ".xlsx":
1799+
with open("test_mi_holes.xlsx", "rb") as f:
1800+
expected = pd.read_excel(f,
1801+
sheet_name='expected_index_hole',
1802+
header=[0, 1],
1803+
index_col=[0, 1])
1804+
1805+
with open("test_mi_holes.xlsx", "rb") as f:
1806+
actual = pd.read_excel(f,
1807+
sheet_name='index_hole',
1808+
header=[0, 2],
1809+
index_col=[0, 1])
1810+
1811+
tm.assert_frame_equal(expected, actual)

0 commit comments

Comments
 (0)