วิธีค้นหาค่าที่ไม่ซ้ำในหลายคอลัมน์ใน pandas
บ่อยครั้งคุณอาจต้องการค้นหาค่าที่ไม่ซ้ำกันทั้งหมดในหลายคอลัมน์ใน Pandas DataFrame โชคดีที่ทำได้ง่ายๆ โดยใช้ฟังก์ชัน pandas Unique() รวมกับฟังก์ชัน ravel()
- Unique() : ส่งกลับค่าที่ไม่ซ้ำตามลำดับที่ปรากฏ
- ravel(): ส่งคืนชุดข้อมูลที่ราบเรียบ
ตัวอย่างเช่น สมมติว่าเรามี DataFrame แพนด้าดังต่อไปนี้:
import pandas as pd #createDataFrame df = pd.DataFrame({'col1': ['a', 'b', 'c', 'd', 'e'], 'col2': ['a', 'c', 'e', 'f', 'g'], 'col3': [11, 8, 10, 6, 6]}) #view DataFrame print(df) col1 col2 col3 0 aa 11 1 bc 8 2 this 10 3 df 6 4 eg 6
ส่งกลับอาร์เรย์ของค่าที่ไม่ซ้ำ
รหัสต่อไปนี้แสดงวิธีค้นหาค่าที่ไม่ซ้ำใน col1 และ col2 :
p.d. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) array(['a', 'b', 'c', 'e', 'd', 'f', 'g'], dtype=object)
จากผลลัพธ์เราจะเห็นว่ามีค่าที่ไม่ซ้ำกัน 7 ค่าในสองคอลัมน์นี้: a, b, c, d, e, f, g .
ส่งกลับ DataFrame ของค่าที่ไม่ซ้ำ
หากคุณต้องการส่งคืนค่าเหล่านี้เป็น DataFrame แทนที่จะเป็นอาร์เรย์ คุณสามารถใช้โค้ดต่อไปนี้:
unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) p.d. DataFrame (unique) 0 0 a 1b 2 tbsp 3rd 4 d 5f 6g
ส่งกลับจำนวนค่าที่ไม่ซ้ำ
หากคุณเพียงต้องการทราบจำนวนค่าที่ไม่ซ้ำกันในหลายคอลัมน์ คุณสามารถใช้โค้ดต่อไปนี้:
unique = pd. unique (df[[' col1 ', ' col2 ']]. values . ravel ()) len (unique) 7
สิ่งนี้บอกเราว่ามีค่าที่ไม่ซ้ำกัน 7 ค่าในสองคอลัมน์นี้
แหล่งข้อมูลเพิ่มเติม
วิธีผสาน Pandas DataFrames ในหลายคอลัมน์
วิธีกรอง Pandas DataFrame ในหลายเงื่อนไข