วิธีเลือกแถวตามเงื่อนไขหลายรายการโดยใช้ pandas loc
คุณสามารถใช้วิธีการต่อไปนี้เพื่อเลือกแถวจาก Pandas DataFrame ตามเงื่อนไขหลายประการ:
วิธีที่ 1: เลือกแถวที่ตรงตามเงื่อนไขหลายประการ
df. loc [((df[' col1 '] == ' A ') & (df[' col2' ] == ' G '))]
วิธีที่ 2: เลือกแถวที่ตรงตามเงื่อนไขข้อใดข้อหนึ่ง
df. loc [((df[' col1 '] > 10) | (df[' col2' ] < 8))]
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame df team position assists rebounds 0 A G 5 11 1 A G 7 8 2 A F 7 10 3 A F 9 6 4 B G 12 6 5 B G 9 5 6 B F 9 9 7 B F 4 12
วิธีที่ 1: เลือกแถวที่ตรงตามเงื่อนไขหลายประการ
รหัสต่อไปนี้แสดงวิธีการเลือกเฉพาะแถวจาก DataFrame โดยที่ทีมเท่ากับ “A” และตำแหน่งเท่ากับ “G”:
#select rows where team is equal to 'A' and position is equal to 'G'
df. loc [((df[' team '] == ' A ') & (df[' position '] == ' G '))]
team position assists rebounds
0 A G 5 11
1 A G 7 8
DataFrame มีเพียงสองแถวที่ตรงตามเงื่อนไขทั้งสองนี้
วิธีที่ 2: เลือกแถวที่ตรงตามเงื่อนไขข้อใดข้อหนึ่ง
รหัสต่อไปนี้แสดงวิธีการเลือกเฉพาะแถวใน DataFrame โดยที่ตัวช่วยมีค่ามากกว่า 10 หรือ การตอบสนองน้อยกว่า 8:
#select rows where assists is greater than 10 or rebounds is less than 8
df. loc [((df[' assists '] > 10) | (df[' rebounds '] < 8))]
team position assists rebounds
3 A F 9 6
4 B G 12 6
5 B G 9 5
DataFrame มีเพียงสามแถวที่ตรงตามเงื่อนไขทั้งสองนี้
หมายเหตุ: ในสองตัวอย่างนี้ เราได้กรองแถวตามเงื่อนไขสองข้อ แต่ใช้เครื่องหมาย & และ | คุณลักษณะ ผู้ประกอบการเราสามารถกรองเงื่อนไขได้มากเท่าที่ต้องการ
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
วิธีสร้างคอลัมน์ใหม่ตามเงื่อนไขใน Pandas
วิธีลบแถวที่มีค่าเฉพาะใน Pandas
วิธีลบแถวที่ซ้ำกันใน Pandas