@@ -1711,34 +1711,38 @@ def _get_slice_axis(self, slice_obj, axis=0):
17111711 else :
17121712 return self .obj .take (slice_obj , axis = axis , convert = False )
17131713
1714- def _get_list_axis (self , key_list , axis = 0 ):
1714+ def _get_list_axis (self , key , axis = 0 ):
17151715 """
1716- Return Series values by list or array of integers
1716+ Return Series values by array of integers
17171717
17181718 Parameters
17191719 ----------
1720- key_list : list-like positional indexer
1720+ key : list-like positional indexer (already converted to array)
17211721 axis : int (can only be zero)
17221722
17231723 Returns
17241724 -------
17251725 Series object
17261726 """
1727-
1728- # validate list bounds
1729- self ._is_valid_list_like (key_list , axis )
1730-
1731- # force an actual list
1732- key_list = list (key_list )
1733- return self .obj .take (key_list , axis = axis , convert = False )
1727+ try :
1728+ return self .obj .take (key , axis = axis , convert = False )
1729+ except IndexError :
1730+ # re-raise with different error message
1731+ raise IndexError ("positional indexers are out-of-bounds" )
17341732
17351733 def _getitem_axis (self , key , axis = 0 ):
17361734
17371735 if isinstance (key , slice ):
17381736 self ._has_valid_type (key , axis )
17391737 return self ._get_slice_axis (key , axis = axis )
17401738
1741- elif is_bool_indexer (key ):
1739+ if isinstance (key , list ):
1740+ try :
1741+ key = np .asarray (key )
1742+ except TypeError : # pragma: no cover
1743+ pass
1744+
1745+ if is_bool_indexer (key ):
17421746 self ._has_valid_type (key , axis )
17431747 return self ._getbool_axis (key , axis = axis )
17441748
@@ -1748,6 +1752,7 @@ def _getitem_axis(self, key, axis=0):
17481752
17491753 # a single integer
17501754 else :
1755+
17511756 key = self ._convert_scalar_indexer (key , axis )
17521757
17531758 if not is_integer (key ):
0 commit comments