วิธีค้นหาค่าที่ไม่ซ้ำในหลายคอลัมน์ใน 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 ในหลายเงื่อนไข

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *