Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python Pandas - คำนวณ Indexer และ Mask สำหรับ Index ใหม่ รองรับค่าที่ซ้ำกัน

เพื่อคำนวณ 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))