pandas.Index.get_indexer_non_unique#
- Index.get_indexer_non_unique(target)[源代码][源代码]#
计算给定当前索引的新索引的索引器和掩码。
索引器应随后用作 ndarray.take 的输入,以将当前数据与新索引对齐。
- 参数:
- 目标索引
一个包含用于计算索引器值的可迭代对象。
- 返回:
- 索引器np.ndarray[np.intp]
从0到n-1的整数,表示这些位置的索引与相应的目标值匹配。目标中缺失的值用-1标记。
- missingnp.ndarray[np.intp]
一个索引器到未找到值的目标。这些对应于索引器数组中的-1。
参见
Index.get_indexer
计算给定当前索引的新索引的索引器和掩码。
Index.get_indexer_for
即使在非唯一情况下也返回一个索引器。
例子
>>> index = pd.Index(['c', 'b', 'a', 'b', 'b']) >>> index.get_indexer_non_unique(['b', 'b']) (array([1, 3, 4, 1, 3, 4]), array([], dtype=int64))
在下面的例子中没有匹配的值。
>>> index = pd.Index(['c', 'b', 'a', 'b', 'b']) >>> index.get_indexer_non_unique(['q', 'r', 't']) (array([-1, -1, -1]), array([0, 1, 2]))
因此,返回的
indexer
只包含等于 -1 的整数。这表明在这些位置上索引和target
值之间没有匹配。返回值中的掩码 [0, 1, 2] 显示第一个、第二个和第三个元素缺失。注意返回值是一个包含两个项的元组。在下面的例子中,第一项是
index
中的位置数组。第二项是一个掩码,显示第一个和第三个元素缺失。>>> index = pd.Index(['c', 'b', 'a', 'b', 'b']) >>> index.get_indexer_non_unique(['f', 'b', 's']) (array([-1, 1, 3, 4, -1]), array([0, 2]))