Skip to content

Commit

Permalink
DOC: .get_slice_bound in MultiIndex needs documentation. (#29967)
Browse files Browse the repository at this point in the history
  • Loading branch information
proost committed Dec 18, 2019
1 parent 2043969 commit dcbbbf3
Showing 1 changed file with 48 additions and 1 deletion.
49 changes: 48 additions & 1 deletion pandas/core/indexes/multi.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
from collections import OrderedDict
import datetime
from sys import getsizeof
from typing import Hashable, Sequence, Union
import warnings

import numpy as np
Expand Down Expand Up @@ -2441,7 +2442,53 @@ def reindex(self, target, method=None, level=None, limit=None, tolerance=None):

return target, indexer

def get_slice_bound(self, label, side, kind):
def get_slice_bound(
self, label: Union[Hashable, Sequence[Hashable]], side: str, kind: str
) -> int:
"""
For an ordered MultiIndex, compute slice bound
that corresponds to given label.
Returns leftmost (one-past-the-rightmost if `side=='right') position
of given label.
Parameters
----------
label : object or tuple of objects
side : {'left', 'right'}
kind : {'ix', 'loc', 'getitem'}
Returns
-------
int
Index of label.
Notes
-----
This method only works if level 0 index of the MultiIndex is lexsorted.
Examples
--------
>>> mi = pd.MultiIndex.from_arrays([list('abbc'), list('gefd')])
Get the locations from the leftmost 'b' in the first level
until the end of the multiindex:
>>> mi.get_slice_bound('b', side="left", kind="ix")
1
Like above, but if you get the locations from the rightmost
'b' in the first level and 'f' in the second level:
>>> mi.get_slice_bound(('b','f'), side="right", kind="ix")
3
See Also
--------
MultiIndex.get_loc : Get location for a label or a tuple of labels.
MultiIndex.get_locs : Get location for a label/slice/list/mask or a
sequence of such.
"""

if not isinstance(label, tuple):
label = (label,)
Expand Down

0 comments on commit dcbbbf3

Please sign in to comment.