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