pandas.Index.get_indexer_non_unique#

Index.get_indexer_non_unique(target)[源代码]#

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

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

Parameters:
targetpandas.DataFrame.keys
Returns:
indexernp.ndarray[np.intp]

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

missingnp.ndarray[np.intp]

一个索引器,指向未找到的值的目标。这些对应于索引器数组中的 -1。

Examples

>>> 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]))