pandas.Index.searchsorted#
- Index.searchsorted(value, side='left', sorter=None)[源代码]#
查找应插入元素以维持顺序的索引。
将索引查找到排序索引中 self 这样,如果中的相应元素 value 被插入在索引之前,顺序为 self 会被保存下来。
备注
《The Index》 must 进行单调排序,否则很可能返回错误的位置。大Pandas就是这样 not 帮你查一下这个。
- 参数
- value类数组或标量
要插入的值 self 。
- side{‘左’,‘右’},可选
如果为‘Left’,则给出找到的第一个合适位置的索引。如果为“Right”,则返回最后一个此类索引。如果没有合适的索引,则返回0或N(其中N是 self )。
- sorter一维阵列,可选
用于排序的整数索引的可选数组 self 进入升序。它们通常是由
np.argsort
。
- 退货
- 整型或整型数组
形状相同的标量或数组插入点 value 。
参见
sort_values
按任一轴上的值排序。
numpy.searchsorted
与NumPy类似的方法。
注意事项
使用二进制搜索来查找所需的插入点。
示例
>>> ser = pd.Series([1, 2, 3]) >>> ser 0 1 1 2 2 3 dtype: int64
>>> ser.searchsorted(4) 3
>>> ser.searchsorted([0, 4]) array([0, 3])
>>> ser.searchsorted([1, 3], side='left') array([0, 2])
>>> ser.searchsorted([1, 3], side='right') array([1, 3])
>>> ser = pd.Series(pd.to_datetime(['3/11/2000', '3/12/2000', '3/13/2000'])) >>> ser 0 2000-03-11 1 2000-03-12 2 2000-03-13 dtype: datetime64[ns]
>>> ser.searchsorted('3/14/2000') 3
>>> ser = pd.Categorical( ... ['apple', 'bread', 'bread', 'cheese', 'milk'], ordered=True ... ) >>> ser ['apple', 'bread', 'bread', 'cheese', 'milk'] Categories (4, object): ['apple' < 'bread' < 'cheese' < 'milk']
>>> ser.searchsorted('bread') 1
>>> ser.searchsorted(['bread'], side='right') array([3])
如果值不是单调排序的,则可能返回错误的位置:
>>> ser = pd.Series([2, 1, 3]) >>> ser 0 2 1 1 2 3 dtype: int64
>>> ser.searchsorted(1) 0 # wrong result, correct would be 1