แพนด้า: เลือกแถวที่มีสองคอลัมน์เท่ากัน


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

วิธีที่ 1: เลือกแถวที่มีสองคอลัมน์เท่ากัน

 df. query (' column1 ==column2 ')

วิธีที่ 2: เลือกแถวที่มีสองคอลัมน์ไม่เท่ากัน

 df. query (' column1 !=column2 ')

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' painting ': ['A', 'B', 'C', 'D', 'E', 'F'],
                   ' fail1 ': ['Good', 'Good', 'Bad', 'Bad', 'Good', 'Good'],
                   ' fail2 ': ['Good', 'Bad', 'Bad', 'Good', 'Good', 'Good']})

#view DataFrame
print (df)

  painting rater1 rater2
0 A Good Good
1 B Good Bad
2 C Bad Bad
3 D Bad Good
4 E Good Good
5 F Good Good

ตัวอย่างที่ 1: เลือกแถวที่มีสองคอลัมน์เท่ากัน

เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเลือกเฉพาะแถวใน DataFrame โดยที่ค่าของคอลัมน์ Rater1 และ Rater2 เท่ากัน:

 #select rows where rater1 is equal to rater2
df. query (' rater1 ==rater2 ')

 painting rater1 rater2
0 A Good Good
2 C Bad Bad
4 E Good Good
5 F Good Good

โปรดทราบว่ามีการเลือกเฉพาะบรรทัดที่ miss1 และ miss2 เท่ากันเท่านั้น

นอกจากนี้เรายังสามารถใช้ฟังก์ชัน len() ได้หากเราต้องการนับจำนวนแถวที่มีค่าเท่ากันในคอลัมน์ Rater1 และ Rater2 :

 #count the number of rows where rater1 is equal to rater2
len ( df.query (' rater1 ==rater2 '))

4

สิ่งนี้บอกเราว่ามี 4 แถวโดยที่ค่าของคอลัมน์ miss1 และ miss2 เท่ากัน

ตัวอย่างที่ 2: เลือกแถวที่มีสองคอลัมน์ไม่เท่ากัน

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

 #select rows where rater1 is not equal to rater2
df. query (' rater1 !=rater2 ')

 painting rater1 rater2
1 B Good Bad
3 D Bad Good

โปรดทราบว่ามีการเลือกเฉพาะบรรทัดที่ miss1 และ miss2 ไม่เท่ากันเท่านั้น

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

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

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

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

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