Python Pandas - Compute indexer and mask for new index even for non-uniquely valued objects


To compute indexer and mask for new index even for non-uniquely values objects, use the index.get_indexer_non_unique() method.Python Pandas - Compute indexer and mask for new index even for non-uniquely valued objects

At first, import the required libraries −

import pandas as pd

Creating Pandas index with some non-unique values −

index = pd.Index([10, 20, 30, 40, 40, 50, 60, 60, 60, 70])

Display the Pandas index −

print("Pandas Index...\n",index)

Compute indexer and mask. Marked by -1, as it is not in index. This also computes non-unique Index object values −

print("\nGet the indexes...\n",index.get_indexer_non_unique([30, 40, 90, 100, 50, 60]))

Example

Following is the code −

import pandas as pd

# Creating Pandas index with some non-unique values
index = pd.Index([10, 20, 30, 40, 40, 50, 60, 60, 60, 70])

# Display the Pandas index
print("Pandas Index...\n",index)

# Return the number of elements in the Index
print("\nNumber of elements in the index...\n",index.size)

# Compute indexer and mask
# Marked by -1, as it is not in index
# This also computes non-unique Index object values
print("\nGet the indexes...\n",index.get_indexer_non_unique([30, 40, 90, 100, 50, 60]))

Output

This will produce the following output −

Pandas Index...
Int64Index([10, 20, 30, 40, 40, 50, 60, 60, 60, 70], dtype='int64')

Number of elements in the index...
10

Get the indexes...
(array([ 2, 3, 4, -1, -1, 5, 6, 7, 8], dtype=int64), array([2, 3], dtype=int64))

Updated on: 14-Oct-2021

75 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements