@@ -492,6 +492,29 @@ def test_loc_axis_arguments(self):
492
492
with pytest .raises (ValueError ):
493
493
df .loc (axis = "foo" )[:, :, ["C1" , "C3" ]]
494
494
495
+ def test_loc_axis_single_level_indexer (self ):
496
+
497
+ # test single level indexing on Multindex column dataframe
498
+ df1 = pd .DataFrame (
499
+ np .arange (27 ).reshape (3 , 9 ),
500
+ columns = pd .MultiIndex .from_product (
501
+ [["a1" , "a2" , "a3" ], ["b1" , "b2" , "b3" ]]
502
+ ),
503
+ )
504
+ result = df1 .loc (axis = 1 )["a1" :"a2" ]
505
+ expected = df1 .iloc [:, :- 3 ]
506
+ tm .assert_frame_equal (result , expected )
507
+ result = df1 .loc (axis = 1 )["a1" ]
508
+ expected = df1 .iloc [:, :3 ]
509
+ expected .columns = ["b1" , "b2" , "b3" ]
510
+ tm .assert_frame_equal (result , expected )
511
+
512
+ # test single level indexing on single index column data frame
513
+ df2 = pd .DataFrame (np .arange (9 ).reshape (3 , 3 ), columns = ["a" , "b" , "c" ])
514
+ result = df2 .loc (axis = 1 )["a" ]
515
+ expected = pd .Series ([0 , 3 , 6 ], dtype = "int64" , name = "a" )
516
+ tm .assert_series_equal (result , expected )
517
+
495
518
def test_per_axis_per_level_setitem (self ):
496
519
497
520
# test index maker
0 commit comments