當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。