Pandas: วิธีใช้ isin สำหรับหลายคอลัมน์
คุณสามารถใช้วิธีการต่อไปนี้กับฟังก์ชัน pandas isin() เพื่อกรองตามหลายคอลัมน์ใน DataFrame ของ pandas:
วิธีที่ 1: กรองเมื่อหลายคอลัมน์มีค่าเฉพาะเจาะจงเท่ากัน
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )]
ตัวอย่างนี้กรอง DataFrame สำหรับแถวที่คอลัมน์ ทีม เท่ากับ “A” และ คอลัมน์ ตำแหน่ง เท่ากับ “Guard”
วิธีที่ 2: กรองโดยที่อย่างน้อยหนึ่งคอลัมน์เท่ากับค่าที่ระบุ
df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )]
ตัวอย่างนี้กรอง DataFrame สำหรับแถวที่คอลัมน์ ทีม เท่ากับ “A” หรือ คอลัมน์ ตำแหน่ง เท่ากับ “Guard”
ตัวอย่างต่อไปนี้แสดงวิธีการใช้แต่ละวิธีในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'], ' position ': ['Guard', 'Guard', 'Forward', 'Forward', 'Guard', 'Guard', 'Forward', 'Forward'], ' points ': [11, 18, 10, 22, 26, 35, 19, 12]}) #view DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18 2 A Forward 10 3 A Forward 22 4 B Guard 26 5 B Guard 35 6 B Forward 19 7 B Forward 12
ตัวอย่างที่ 1: กรองโดยที่หลายคอลัมน์เท่ากับค่าเฉพาะ
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อกรอง DataFrame ให้มีเพียงแถวที่คอลัมน์ ทีม เท่ากับ “A” และ คอลัมน์ ตำแหน่ง เท่ากับ “Guard”
#filter rows where team column is 'A' and position column is 'Guard' df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). all (axis= 1 )] #view filtered DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18
โปรดทราบว่าเฉพาะแถวที่คอลัมน์ ทีม เท่ากับ “A” และ คอลัมน์ ตำแหน่ง เท่ากับ “Guard” เท่านั้นที่จะยังคงอยู่ใน DataFrame ที่กรอง
ตัวอย่างที่ 2: กรองโดยที่อย่างน้อยหนึ่งคอลัมน์เท่ากับค่าที่ระบุ
เราสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อกรอง DataFrame ให้มีเพียงแถวที่คอลัมน์ ทีม เท่ากับ “A” หรือ คอลัมน์ ตำแหน่ง เท่ากับ “Guard”
#filter rows where team column is 'A' or position column is 'Guard' df = df[df[[' team ', ' position ']]. isin ([' A ',' Guard ']). any (axis= 1 )] #view filtered DataFrame print (df) team position points 0 A Guard 11 1 A Guard 18 2 A Forward 10 3 A Forward 22 4 B Guard 26 5 B Guard 35
โปรดทราบว่าเฉพาะแถวที่คอลัมน์ ทีม เท่ากับ “A” หรือ คอลัมน์ ตำแหน่ง เท่ากับ “Guard” เท่านั้นที่จะยังคงอยู่ใน DataFrame ที่กรอง
หมายเหตุ : คุณสามารถดูเอกสารฉบับเต็มสำหรับฟังก์ชัน pandas isin() ได้ที่นี่
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:
Pandas: วิธีเพิ่มตัวกรองลงในตารางสาระสำคัญ
นุ่น: วิธีกรอง “ไม่มี”
Pandas: วิธีกรองแถวที่มีสตริงเฉพาะ