Pandas: วิธีตรวจสอบว่าหลายคอลัมน์เท่ากันหรือไม่


คุณสามารถใช้วิธีการต่อไปนี้เพื่อตรวจสอบว่าหลายคอลัมน์เท่ากันในแพนด้าหรือไม่:

วิธีที่ 1: ตรวจสอบว่าคอลัมน์ทั้งหมดเท่ากันหรือไม่

 df[' matching '] = df. eq (df. iloc [:, 0], axis= 0 ). all (1)

วิธีที่ 2: ตรวจสอบว่าคอลัมน์ที่ระบุเท่ากันหรือไม่

 df[' matching '] = df. apply ( lambda x: x.col1 == x.col3 == x.col4 , axis= 1 )

ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' A ': [4, 0, 3, 3, 6, 8, 7],
                   ' B ': [4, 2, 3, 5, 6, 4, 7],
                   ' C ': [4, 0, 3, 3, 5, 10, 7],
                   ' D ': [4, 0, 3, 3, 3, 8, 7]})

#view DataFrame
print (df)

   ABCD
0 4 4 4 4
1 0 2 0 0
2 3 3 3 3
3 3 5 3 3
4 6 6 5 3
5 8 4 10 8
6 7 7 7 7

ตัวอย่างที่ 1: ตรวจสอบว่าคอลัมน์ทั้งหมดเท่ากันหรือไม่

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อตรวจสอบว่าค่าของแต่ละคอลัมน์ใน DataFrame เท่ากันสำหรับแต่ละแถวหรือไม่:

 #create new column that checks if all columns match in each row
df[' matching '] = df. eq (df. iloc [:, 0], axis= 0 ). all (1)

#view updated DataFrame
print (df)

   ABCD matching
0 4 4 4 4 True
1 0 2 0 0 False
2 3 3 3 3 True
3 3 5 3 3 False
4 6 6 5 3 False
5 8 4 10 8 False
6 7 7 7 7 True

หากค่าของแต่ละคอลัมน์เท่ากัน คอลัมน์ที่เกี่ยวข้องจะส่งกลับ True

มิฉะนั้นจะส่งกลับ False

โปรดทราบว่าคุณสามารถแปลงค่า True และ False เป็น 1 และ 0 ได้โดยใช้ astype(int) ดังนี้:

 #create new column that checks if all columns match in each row
df[' matching '] = df. eq (df. iloc [:, 0], axis= 0 ). all (1). astype (int)

#view updated DataFrame
print (df)

   ABCD matching
0 4 4 4 4 1
1 0 2 0 0 0
2 3 3 3 3 1
3 3 5 3 3 0
4 6 6 5 3 0
5 8 4 10 8 0
6 7 7 7 7 1

ตัวอย่างที่ 2: ตรวจสอบว่าคอลัมน์ใดคอลัมน์หนึ่งเท่ากัน

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อตรวจสอบว่าค่าในคอลัมน์ A, C และ D ของ DataFrame เท่ากันสำหรับแต่ละแถวหรือไม่:

 #create new column that checks if values in columns A, C, and D are equal
df[' matching '] = df. apply ( lambda x: x. A == x. C == x. D , axis= 1 )

#view updated DataFrame
print (df)

   ABCD matching
0 4 4 4 4 True
1 0 2 0 0 True
2 3 3 3 3 True
3 3 5 3 3 True
4 6 6 5 3 False
5 8 4 10 8 False
6 7 7 7 7 True

หากค่าในคอลัมน์ A, C และ D เท่ากัน คอลัมน์ที่เกี่ยวข้องจะส่งกลับ True

มิฉะนั้นจะส่งกลับ False

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:

วิธีเปลี่ยนชื่อคอลัมน์ใน Pandas
วิธีเพิ่มคอลัมน์ใน Pandas DataFrame
วิธีเปลี่ยนลำดับคอลัมน์ใน Pandas DataFrame

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

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