We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
1 parent 6452f2c commit fc2cc7cCopy full SHA for fc2cc7c
pandas/tests/indexing/multiindex/test_getitem.py
@@ -260,3 +260,22 @@ def test_frame_mi_empty_slice():
260
index=[0, 1], columns=MultiIndex(levels=[[1], [2]], codes=[[], []])
261
)
262
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
0 commit comments