@@ -99,7 +99,8 @@ def test_xs_keep_level(self):
99
99
expected = df [:1 ]
100
100
tm .assert_frame_equal (result , expected )
101
101
102
- result = df .xs ([2008 , "sat" ], level = ["year" , "day" ], drop_level = False )
102
+ with tm .assert_produces_warning (FutureWarning ):
103
+ result = df .xs ([2008 , "sat" ], level = ["year" , "day" ], drop_level = False )
103
104
tm .assert_frame_equal (result , expected )
104
105
105
106
def test_xs_view (self ):
@@ -172,7 +173,11 @@ def test_xs_with_duplicates(self, key, level, multiindex_dataframe_random_data):
172
173
assert df .index .is_unique is False
173
174
expected = concat ([frame .xs ("one" , level = "second" )] * 2 )
174
175
175
- result = df .xs (key , level = level )
176
+ if isinstance (key , list ):
177
+ with tm .assert_produces_warning (FutureWarning ):
178
+ result = df .xs (key , level = level )
179
+ else :
180
+ result = df .xs (key , level = level )
176
181
tm .assert_frame_equal (result , expected )
177
182
178
183
def test_xs_missing_values_in_index (self ):
@@ -327,3 +332,11 @@ def test_xs_droplevel_false_view(self):
327
332
df .values [0 , 0 ] = 2
328
333
expected = DataFrame ({"a" : [2 ]})
329
334
tm .assert_frame_equal (result , expected )
335
+
336
+ def test_xs_list_indexer_droplevel_false (self ):
337
+ # GH#41760
338
+ mi = MultiIndex .from_tuples ([("x" , "m" , "a" ), ("x" , "n" , "b" ), ("y" , "o" , "c" )])
339
+ df = DataFrame ([[1 , 2 , 3 ], [4 , 5 , 6 ]], columns = mi )
340
+ with tm .assert_produces_warning (FutureWarning ):
341
+ with pytest .raises (KeyError , match = "y" ):
342
+ df .xs (["x" , "y" ], drop_level = False , axis = 1 )
0 commit comments