pandas.Index.get_indexer_non_unique#
- Index.get_indexer_non_unique(target)[source]#
- Compute indexer and mask for new index given the current index. - The indexer should be then used as an input to ndarray.take to align the current data to the new index. - Parameters:
- targetIndex
- An iterable containing the values to be used for computing indexer. 
 
- Returns:
- indexernp.ndarray[np.intp]
- Integers from 0 to n - 1 indicating that the index at these positions matches the corresponding target values. Missing values in the target are marked by -1. 
- missingnp.ndarray[np.intp]
- An indexer into the target of the values not found. These correspond to the -1 in the indexer array. 
 
 - See also - Index.get_indexer
- Computes indexer and mask for new index given the current index. 
- Index.get_indexer_for
- Returns an indexer even when non-unique. 
 - 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)) - In the example below there are no matched values. - >>> index = pd.Index(["c", "b", "a", "b", "b"]) >>> index.get_indexer_non_unique(["q", "r", "t"]) (array([-1, -1, -1]), array([0, 1, 2])) - For this reason, the returned - indexercontains only integers equal to -1. It demonstrates that there’s no match between the index and the- targetvalues at these positions. The mask [0, 1, 2] in the return value shows that the first, second, and third elements are missing.- Notice that the return value is a tuple contains two items. In the example below the first item is an array of locations in - index. The second item is a mask shows that the first and third elements are missing.- >>> 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]))