pandas.Series.searchsorted # 系列。searchsorted ( value , side = 'left' , sorter = None ) [来源] # 查找应插入元素以维持顺序的索引。 找到排序系列self中的索引,这样,如果value中的相应元素插入到索引之前,则self的顺序将被保留。 笔记 Series必须单调排序,否则可能会返回错误的位置。 Pandas不会 为你检查这一点。 参数: 类似数组或标量的值要插入到self中的值。 边{'左','右'},可选如果为“left”,则给出找到的第一个合适位置的索引。如果“正确”,则返回最后一个此类索引。如果没有合适的索引,则返回 0 或 N(其中 N 是self的长度)。 类似一维数组的排序器,可选可选的整数索引数组,将自身按升序排序。它们通常是 的结果np.argsort。 返回: int 或 int 数组与value具有相同形状的插入点标量或数组。 也可以看看 sort_values按沿任一轴的值排序。 numpy.searchsortedNumPy 中的类似方法。 笔记 二分查找用于查找所需的插入点。 例子 >>> 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