当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python pandas.Series.searchsorted用法及代码示例


用法:

Series.searchsorted(value, side='left', sorter=None)

查找应插入元素以保持顺序的索引。

找到已排序序列self 中的索引,这样,如果在索引之前插入value 中的相应元素,则将保留self 的顺序。

注意

Series 必须单调排序,否则可能会返回错误的位置。 Pandas 不会为您检查此项。

参数

valuearray-like 或标量

要插入 self 的值。

side{‘left’, ‘right’},可选

如果‘left’,则给出找到的第一个合适位置的索引。如果‘right’,返回最后一个这样的索引。如果没有合适的索引,则返回 0 或 N(其中 N 是 self 的长度)。

sorter一维array-like,可选

可选的整数索引数组,将 self 排序为升序。它们通常是 np.argsort 的结果。

返回

int 或 int 数组

value 具有相同形状的插入点的标量或数组。

注意

二分查找用于查找所需的插入点。

例子

>>> 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

相关用法


注:本文由纯净天空筛选整理自pandas.pydata.org大神的英文原创作品 pandas.Series.searchsorted。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。