pandas.Index.get_indexer#

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

根据当前索引为新索引计算索引器和掩码。

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

Parameters:
targetpandas.DataFrame.keys
<strong>method</strong>{None, ‘pad’/’ffill’, ‘backfill’/’bfill’, ‘nearest’}, optional
  • 默认值:仅精确匹配。

  • pad / ffill:如果在没有精确匹配的情况下则查找*上一个*索引值。

  • backfill / bfill:如果在没有精确匹配的情况下则使用*下一个*索引值。

  • nearest:如果在没有精确匹配的情况下则使用*最近*的索引值。相等的距离通过优先选择较大的索引值来打破平局。

<strong>limit</strong>int, optional

用于非精确匹配的目标中连续标签的最大数量。

toleranceoptional

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

tolerance 可以是标量值,它将相同的容差应用于所有值,也可以是类列表的值,它将可变容差应用于每个元素。类列表包括 list、tuple、array、Series,并且必须与索引大小相同,其 dtype 必须与索引的确切类型匹配。

Returns:
np.ndarray[np.intp]

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

Notes

对于未匹配的值返回 -1,有关更多解释,请参阅下面的示例。

Examples

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

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