@@ -1595,6 +1595,16 @@ def _get_slice_axis(self, slice_obj, axis=0):
1595
1595
else :
1596
1596
return self .obj .take (slice_obj , axis = axis , convert = False )
1597
1597
1598
+ def _get_list_axis (self , key_list , axis = 0 ):
1599
+
1600
+ # validate list bounds
1601
+ self ._is_valid_list_like (key_list , axis )
1602
+
1603
+ # force an actual list
1604
+ key_list = list (key_list )
1605
+ return self .obj .take (key_list , axis = axis , convert = False )
1606
+
1607
+
1598
1608
def _getitem_axis (self , key , axis = 0 ):
1599
1609
1600
1610
if isinstance (key , slice ):
@@ -1606,26 +1616,18 @@ def _getitem_axis(self, key, axis=0):
1606
1616
return self ._getbool_axis (key , axis = axis )
1607
1617
1608
1618
# a single integer or a list of integers
1609
- else :
1610
-
1611
- if is_list_like_indexer (key ):
1612
-
1613
- # validate list bounds
1614
- self ._is_valid_list_like (key , axis )
1615
-
1616
- # force an actual list
1617
- key = list (key )
1618
- return self .obj .take (key , axis = axis , convert = False )
1619
+ elif is_list_like_indexer (key ):
1620
+ return self ._get_list_axis (key , axis = axis )
1619
1621
1620
- else :
1621
- key = self ._convert_scalar_indexer (key , axis )
1622
+ else :
1623
+ key = self ._convert_scalar_indexer (key , axis )
1622
1624
1623
- if not is_integer (key ):
1624
- raise TypeError ("Cannot index by location index with a "
1625
- "non-integer key" )
1625
+ if not is_integer (key ):
1626
+ raise TypeError ("Cannot index by location index with a "
1627
+ "non-integer key" )
1626
1628
1627
- # validate the location
1628
- self ._is_valid_integer (key , axis )
1629
+ # validate the location
1630
+ self ._is_valid_integer (key , axis )
1629
1631
1630
1632
return self ._get_loc (key , axis = axis )
1631
1633
0 commit comments