pandas.MultiIndex.get_indexer #

多重索引。get_indexer (目标,方法=,限制=,容差=) [来源] #

给定当前索引,计算新索引的索引器和掩码。

然后,索引器应用作 ndarray.take 的输入,以将当前数据与新索引对齐。

参数
目标指数
方法{无、'pad'/'ffill'、'backfill'/'bfill'、'nearest'},可选
  • 默认值:仅精确匹配。

  • pad / fill:如果没有完全匹配,则查找上一个索引值。

  • backfill / bfill:如果没有精确匹配,则使用 NEXT 索引值

  • 最近:如果没有完全匹配,则使用 NEAREST 索引值。通过选择较大的索引值来打破束缚距离。

限制int,可选

target用于匹配不精确匹配的最大连续标签数。

公差可选

不精确匹配的原始标签和新标签之间的最大距离。匹配位置处的索引值必须满足方程。abs(index[indexer] - target) <= tolerance

公差可以是标量值,它对所有值应用相同的公差,也可以是类似列表的,它对每个元素应用可变的公差。类列表包括列表、元组、数组、系列,并且必须与索引大小相同,并且其数据类型必须与索引的类型完全匹配。

返回
np.ndarray[np.intp]

从 0 到 n - 1 的整数表示这些位置的索引与相应的目标值匹配。目标中的缺失值标记为 -1。

笔记

对于不匹配的值返回 -1,有关进一步说明,请参阅下面的示例。

例子

>>> index = pd.Index(['c', 'a', 'b'])
>>> index.get_indexer(['a', 'b', 'x'])
array([ 1,  2, -1])

请注意,返回值是 中的位置数组,indexx用 -1 标记,因为它不在 中index