

def _convert_list_indexer(self, keyarr, kind=None):
    "\n        passed a key that is tuplesafe that is integer based\n        and we have a mixed index (e.g. number/labels). figure out\n        the indexer. return None if we can't help\n        "
    if ((kind in [None, 'iloc', 'ix']) and is_integer_dtype(keyarr) and (not self.is_floating()) and (not isinstance(keyarr, ABCPeriodIndex))):
        if (self.inferred_type == 'mixed-integer'):
            indexer = self.get_indexer(keyarr)
            if (indexer >= 0).all():
                return indexer
            indexer[(indexer < 0)] = len(self)
            from pandas.core.indexing import maybe_convert_indices
            return maybe_convert_indices(indexer, len(self))
        elif (not (self.inferred_type == 'integer')):
            keyarr = np.where((keyarr < 0), (len(self) + keyarr), keyarr)
            return keyarr
    return None

dataset/ETHPy150Open pydata/pandas/pandas/indexes/base.py Index._convert_list_indexer/original