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

เขียนโปรแกรมใน Python เพื่อพิมพ์อาร์เรย์ดัชนีตัวเลขด้วยค่าที่ไม่ซ้ำที่เรียงลำดับใน series ที่กำหนด


สมมติว่า คุณมีชุดข้อมูลและดัชนีตัวเลขที่มีค่าการเรียงลำดับที่แตกต่างกันคือ −

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']