pandas.MultiIndex.get_indexer#

MultiIndex.get_indexer(target, method=None, limit=None, tolerance=None)[源代码]#

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

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

参数:
目标索引

一个包含用于计算索引器值的可迭代对象。

方法{None, ‘pad’/’ffill’, ‘backfill’/’bfill’, ‘nearest’},可选
  • 默认:仅精确匹配。

  • pad / ffill: 如果没有精确匹配,找到前一个索引值。

  • backfill / bfill: 如果没有精确匹配,使用下一个索引值

  • nearest: 如果没有完全匹配,使用最近的索引值。距离相同时,优先选择较大的索引值。

限制int, 可选

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

tolerance可选的

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

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

返回:
np.ndarray[np.intp]

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

参见

Index.get_indexer_for

即使在非唯一的情况下也返回一个索引器。

Index.get_non_unique

返回给定当前索引的新索引的索引器和掩码。

备注

对于不匹配的值返回 -1,进一步的解释请参见下面的示例。

例子

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

请注意,返回值是一个在 index 中的位置数组,而 x 被标记为 -1,因为它不在 index 中。