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中。