pandas.Index.searchsorted¶
-
Index.
searchsorted
(key, side='left', sorter=None)[source]¶ 查找要插入元素以维持顺序的索引。
找到索引到经排序的IndexOpsMixin self中,使得如果v中的对应元素被插入在索引之前,则self的顺序将是保存。
参数: 键:array_like
要插入self的值。
侧:{'left','right'},可选
如果“向左”,则给出找到的第一合适位置的索引。如果'right',返回最后这样的索引。如果没有合适的索引,则返回0或N(其中N是self的长度)。
排序器:1-D array_like,可选
将self按升序排序的整数索引的可选数组。它们通常是
np.argsort
的结果。返回: indices:int数组
具有与v相同形状的插入点数组。
也可以看看
笔记
二进制搜索用于查找所需的插入点。
例子
>>> x = pd.Series([1, 2, 3]) >>> x 0 1 1 2 2 3 dtype: int64 >>> x.searchsorted(4) array([3]) >>> x.searchsorted([0, 4]) array([0, 3]) >>> x.searchsorted([1, 3], side='left') array([0, 2]) >>> x.searchsorted([1, 3], side='right') array([1, 3]) >>> >>> x = pd.Categorical(['apple', 'bread', 'bread', 'cheese', 'milk' ]) [apple, bread, bread, cheese, milk] Categories (4, object): [apple < bread < cheese < milk] >>> x.searchsorted('bread') array([1]) # Note: an array, not a scalar >>> x.searchsorted(['bread']) array([1]) >>> x.searchsorted(['bread', 'eggs']) array([1, 4]) >>> x.searchsorted(['bread', 'eggs'], side='right') array([3, 4]) # eggs before milk