Skip to content

Commit 5d0cd4d

Browse files
committed
Improve test
1 parent ad3a5b7 commit 5d0cd4d

File tree

1 file changed

+35
-8
lines changed

1 file changed

+35
-8
lines changed

pandas/tests/io/excel/test_writers.py

Lines changed: 35 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -870,22 +870,49 @@ def test_to_excel_multiindex_nan_label(self, merge_cells, tmp_excel):
870870
# Test for Issue 11328. If column indices are integers, make
871871
# sure they are handled correctly for either setting of
872872
# merge_cells
873-
def test_to_excel_multiindex_cols(self, merge_cells, frame, tmp_excel):
873+
def test_to_excel_multiindex_cols(self, merge_cells, tmp_excel):
874+
# GH#11328
875+
frame = DataFrame(
876+
{
877+
"A": [1, 2, 3],
878+
"B": [4, 5, 6],
879+
"C": [7, 8, 9],
880+
}
881+
)
874882
arrays = np.arange(len(frame.index) * 2, dtype=np.int64).reshape(2, -1)
875883
new_index = MultiIndex.from_arrays(arrays, names=["first", "second"])
876884
frame.index = new_index
877885

878-
new_cols_index = MultiIndex.from_tuples([(40, 1), (40, 2), (50, 1), (50, 2)])
886+
new_cols_index = MultiIndex.from_tuples([(40, 1), (40, 2), (50, 1)])
879887
frame.columns = new_cols_index
880-
header = [0, 1]
881-
882-
# round trip
883888
frame.to_excel(tmp_excel, sheet_name="test1", merge_cells=merge_cells)
889+
890+
# Check round trip
884891
with ExcelFile(tmp_excel) as reader:
885-
df = pd.read_excel(
886-
reader, sheet_name="test1", header=header, index_col=[0, 1]
892+
result = pd.read_excel(
893+
reader, sheet_name="test1", header=[0, 1], index_col=[0, 1]
887894
)
888-
tm.assert_frame_equal(frame, df)
895+
tm.assert_frame_equal(result, frame)
896+
897+
# GH#60274
898+
# Check with header/index_col None to determine which cells were merged
899+
with ExcelFile(tmp_excel) as reader:
900+
result = pd.read_excel(
901+
reader, sheet_name="test1", header=None, index_col=None
902+
)
903+
expected = DataFrame(
904+
{
905+
0: [np.nan, np.nan, "first", 0, 1, 2],
906+
1: [np.nan, np.nan, "second", 3, 4, 5],
907+
2: [40.0, 1.0, np.nan, 1.0, 2.0, 3.0],
908+
3: [np.nan, 2.0, np.nan, 4.0, 5.0, 6.0],
909+
4: [50.0, 1.0, np.nan, 7.0, 8.0, 9.0],
910+
}
911+
)
912+
if not merge_cells:
913+
# MultiIndex column value is repeated
914+
expected.loc[0, 3] = 40.0
915+
tm.assert_frame_equal(result, expected)
889916

890917
def test_to_excel_multiindex_dates(self, merge_cells, tmp_excel):
891918
# try multiindex with dates

0 commit comments

Comments
 (0)