'Get the location of a specific key in an index or model row labels
Parameters
key : label
The key for which to find the location
base_index : pd.Index, optional
Optionally the base index to search. If None, the model\'s index is
searched.
Returns
loc : int
The location of the key
index : pd.Index
The index including the key; this is a copy of the original index
unless the index had to be expanded to accomodate `key`.
index_was_expanded : bool
Whether or not the index was expanded to accomodate `key`.
Notes
This method expands on `_get_index_loc` by first trying the given
base index (or the model\'s index if the base index was not given) and
then falling back to try again with the model row labels as the base
index.'

def _get_index_label_loc(self, key, base_index=None):

    try:
        (loc, index, index_was_expanded) = self._get_index_loc(key, base_index)
    except KeyError as e:
        try:
            if (not isinstance(key, (int, long, np.integer))):
                loc = self.data.row_labels.get_loc(key)
            else:
                raise
            loc = loc[0]
            index = self.data.row_labels[:(loc + 1)]
            index_was_expanded = False
        except:
            raise e
    return (loc, index, index_was_expanded)
