pandas index.searchsorted()有什么作用?

H.S*_*ssi 1 python indexing dataframe pandas

我正在研究两个数据帧df1df2.我用过代码:

df1.index.searchsorted(df2.index)
Run Code Online (Sandbox Code Playgroud)

但我不确定它是如何工作的.有人可以解释我怎么样?

Mar*_*ers 9

该方法将二进制搜索应用于索引.这是一个众所周知的算法,它使用这样的事实:值已按排序顺序以尽可能少的步骤查找插入索引.

二进制搜索的工作原理是选择值的中间元素,然后将其与搜索的值进行比较; 如果该值小于中间元素下,你再缩小搜索范围,上半年,或者你看下半年,如果它是更大的.

这样,您可以将查找元素所需的步骤数减少到最多索引长度的日志.对于1000个元素,少于7个步骤,对于一百万个元素,少于14个等.

插入索引是添加值以保持索引按排序顺序的位置; 该left位置恰好也是匹配值的索引,因此您也可以使用它来查找插入缺失值或重复值的位置,并测试索引中是否存在给定值.

熊猫执行基本numpy.sortedsearch()功能,其使用生成的C代码本搜索不同的对象类型优化,挤掉速度的每一个最后的下降.

Pandas在各种索引实现中使用该方法来确保快速操作.您通常不会使用此方法来测试索引中是否存在值,例如,因为Pandas索引已经__contains__为您实现了一种有效的方法,通常基于searchsorted()合理的位置.看看DateTimeEngine.__contains__()这样的例子.