เพื่อคำนวณ Indexer และ Mask สำหรับ Index ใหม่ แม้สำหรับอ็อบเจกต์ที่มีค่าซ้ำกัน (non-uniquely valued objects) ให้ใช้เมธอด index.get_indexer_non_unique() ใน Pandas
เริ่มต้นด้วยการนำเข้าไลบรารีที่จำเป็น:
import pandas as pd
สร้าง Pandas Index ที่มีค่าบางส่วนซ้ำกัน:
index = pd.Index([10, 20, 30, 40, 40, 50, 60, 60, 60, 70])
แสดง Pandas Index:
print("Pandas Index...\n", index)
คำนวณ Indexer และ Mask ตัวที่ไม่ได้อยู่ใน Index จะถูกทำเครื่องหมายด้วย -1 วิธีนี้ยังคำนวณค่าของ Index object ที่ซ้ำกันได้:
print("\nGet the indexes...\n", index.get_indexer_non_unique([30, 40, 90, 100, 50, 60]))
ตัวอย่างโค้ดเต็ม
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]))
เอาต์พุต
จะได้ผลลัพธ์ดังนี้:
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))