สมมติว่าฉันมี DataFrame พร้อมคอลัมน์ชื่อ col1 หากฉันต้องการได้แถวทั้งหมดโดยที่ col1 == 'a' ฉันสามารถทำได้ด้วย:
df[df.col1 == ‘a’]
ถ้าฉันต้องการแถวที่ col1 คือ 'a' หรือ 'b' ฉันสามารถทำได้:
df[(df.col1 == ‘a’) | (df.col1 == ‘b’)]
แต่ฉันอยากทำสิ่งนี้จริงๆ (ผิดกฎหมายทางวากยสัมพันธ์) เช่นนี้:
df[df.col1 in [‘a’, ‘b’, ‘c’]]
มีวิธีแพนด้าที่เหมาะสมในการทำเช่นนั้นหรือไม่?
นี่คือสิ่งที่ฉันใช้แทน:
sort_func = lambda x: x in [‘a’, ‘b’, ‘c’]
mask = df[‘col1’].apply(sort_func)
df[mask]
แต่… มีวิธีที่ดีกว่าในการทำเช่นนี้หรือไม่? สิ่งนี้รบกวนฉัน