สมมติว่า คุณมีชุดข้อมูลและดัชนีตัวเลขที่มีค่าการเรียงลำดับที่แตกต่างกันคือ −
Sorted distict values - numeric array index [2 3 0 3 2 1 4] ['apple' 'kiwi' 'mango' 'orange' 'pomegranate']
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนด้านล่าง -
วิธีแก้ปัญหา
-
ใช้ฟังก์ชัน pd.factorize() ในรายการองค์ประกอบที่ไม่ซ้ำและบันทึกเป็น index,index_value.
index,unique_value = pd.factorize(['mango','orange','apple','orange','mango','kiwi','pomegranate'])
-
พิมพ์ดัชนีและองค์ประกอบ ผลลัพธ์จะถูกแสดงโดยไม่มีการเรียงลำดับของค่าที่แตกต่างและดัชนี
-
ใช้ pd.factorize() ภายในองค์ประกอบรายการและตั้งค่า sort=True จากนั้นบันทึกเป็น sorted_index,unique_value
sorted_index,unique_value = pd.factorize(['mango','orange','apple','orange','mango','kiwi','pomegranate'],sort=True)
-
สุดท้ายพิมพ์ดัชนีตัวเลขและค่าที่แตกต่างกัน
ตัวอย่าง
มาดูโค้ดด้านล่างเพื่อทำความเข้าใจกันดีกว่า −
import pandas as pd index,unique_value = pd.factorize(['mango','orange','apple','orange','mango','kiwi','pomegranate']) print("Without sorting of distict values-numeric array index") print(index) print(unique_value) print("Sorted distict values - numeric array index") sorted_index,unique_value = pd.factorize(['mango','orange','apple','orange','mango','kiwi','pomegranate'],sort=True) print(sorted_index) print(unique_value)
ผลลัพธ์
Without sorting of distict values-numeric array index [0 1 2 1 0 3 4] ['mango' 'orange' 'apple' 'kiwi' 'pomegranate'] Sorted distict values - numeric array index [2 3 0 3 2 1 4] ['apple' 'kiwi' 'mango' 'orange' 'pomegranate']