@@ -389,6 +389,37 @@ def test_iloc_getitem_slice_dups(self):
389
389
assert_frame_equal (df .iloc [10 :,:2 ],df2 )
390
390
assert_frame_equal (df .iloc [10 :,2 :],df1 )
391
391
392
+ def test_iloc_getitem_multiindex (self ):
393
+
394
+ df = DataFrame (np .random .randn (3 , 3 ),
395
+ columns = [[2 ,2 ,4 ],[6 ,8 ,10 ]],
396
+ index = [[4 ,4 ,8 ],[8 ,10 ,12 ]])
397
+
398
+ rs = df .iloc [2 ]
399
+ xp = df .irow (2 )
400
+ assert_series_equal (rs , xp )
401
+
402
+ rs = df .iloc [:,2 ]
403
+ xp = df .icol (2 )
404
+ assert_series_equal (rs , xp )
405
+
406
+ rs = df .iloc [2 ,2 ]
407
+ xp = df .values [2 ,2 ]
408
+ self .assert_ (rs == xp )
409
+
410
+ # for multiple items
411
+ # GH 5528
412
+ rs = df .iloc [[0 ,1 ]]
413
+ xp = df .xs (4 ,drop_level = False )
414
+ assert_frame_equal (rs ,xp )
415
+
416
+ tup = zip (* [['a' ,'a' ,'b' ,'b' ],['x' ,'y' ,'x' ,'y' ]])
417
+ index = MultiIndex .from_tuples (tup )
418
+ df = DataFrame (np .random .randn (4 , 4 ), index = index )
419
+ rs = df .iloc [[2 , 3 ]]
420
+ xp = df .xs ('b' ,drop_level = False )
421
+ assert_frame_equal (rs ,xp )
422
+
392
423
def test_iloc_getitem_out_of_bounds (self ):
393
424
394
425
# out-of-bounds slice
@@ -409,23 +440,6 @@ def test_iloc_setitem(self):
409
440
result = df .iloc [:,2 :3 ]
410
441
assert_frame_equal (result , expected )
411
442
412
- def test_iloc_multiindex (self ):
413
- df = DataFrame (np .random .randn (3 , 3 ),
414
- columns = [[2 ,2 ,4 ],[6 ,8 ,10 ]],
415
- index = [[4 ,4 ,8 ],[8 ,10 ,12 ]])
416
-
417
- rs = df .iloc [2 ]
418
- xp = df .irow (2 )
419
- assert_series_equal (rs , xp )
420
-
421
- rs = df .iloc [:,2 ]
422
- xp = df .icol (2 )
423
- assert_series_equal (rs , xp )
424
-
425
- rs = df .iloc [2 ,2 ]
426
- xp = df .values [2 ,2 ]
427
- self .assert_ (rs == xp )
428
-
429
443
def test_loc_getitem_int (self ):
430
444
431
445
# int label
@@ -704,7 +718,7 @@ def test_iloc_setitem_series(self):
704
718
result = s .iloc [:4 ]
705
719
assert_series_equal (result , expected )
706
720
707
- def test_iloc_multiindex (self ):
721
+ def test_iloc_getitem_multiindex (self ):
708
722
mi_labels = DataFrame (np .random .randn (4 , 3 ), columns = [['i' , 'i' , 'j' ],
709
723
['A' , 'A' , 'B' ]],
710
724
index = [['i' , 'i' , 'j' , 'k' ], ['X' , 'X' , 'Y' ,'Y' ]])
0 commit comments