Skip to content

Commit fc2cc7c

Browse files
authored
BUG: loc with empty multiindex raises exception (#38711)
1 parent 6452f2c commit fc2cc7c

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

pandas/tests/indexing/multiindex/test_getitem.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -260,3 +260,22 @@ def test_frame_mi_empty_slice():
260260
index=[0, 1], columns=MultiIndex(levels=[[1], [2]], codes=[[], []])
261261
)
262262
tm.assert_frame_equal(result, expected)
263+
264+
265+
def test_loc_empty_multiindex():
266+
# GH#36936
267+
arrays = [["a", "a", "b", "a"], ["a", "a", "b", "b"]]
268+
index = MultiIndex.from_arrays(arrays, names=("idx1", "idx2"))
269+
df = DataFrame([1, 2, 3, 4], index=index, columns=["value"])
270+
271+
# loc on empty multiindex == loc with False mask
272+
empty_multiindex = df.loc[df.loc[:, "value"] == 0, :].index
273+
result = df.loc[empty_multiindex, :]
274+
expected = df.loc[[False] * len(df.index), :]
275+
tm.assert_frame_equal(result, expected)
276+
277+
# replacing value with loc on empty multiindex
278+
df.loc[df.loc[df.loc[:, "value"] == 0].index, "value"] = 5
279+
result = df
280+
expected = DataFrame([1, 2, 3, 4], index=index, columns=["value"])
281+
tm.assert_frame_equal(result, expected)

0 commit comments

Comments
 (0)