Pandas: วิธีกรองแถวที่มีสตริงเฉพาะ
คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อกรองแถวที่มีสตริงบางอย่างใน DataFrame ของแพนด้า:
df[df[" col "]. str . contains (“ this string ”)]
บทช่วยสอนนี้จะอธิบายหลายตัวอย่างการใช้งานจริงของไวยากรณ์นี้กับ DataFrame ต่อไปนี้:
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'B', 'B', 'C'], ' conference ': ['East', 'East', 'East', 'West', 'West', 'East'], ' points ': [11, 8, 10, 6, 6, 5]}) #view DataFrame df team conference points 0 A East 11 1 A East 8 2 A East 10 3 B West 6 4 B West 6 5 C East 5
ตัวอย่างที่ 1: กรองแถวที่มีสตริงเฉพาะ
รหัสต่อไปนี้แสดงวิธีการกรองแถวใน DataFrame ที่มี “A” ในคอลัมน์ทีม:
df[df[" team "]. str . contains (“ A ”)] team conference points 0 A East 11 1 A East 8 2 A East 10
เฉพาะบรรทัดที่คอลัมน์ทีมมี ‘A’ เท่านั้นที่จะถูกเก็บไว้
ตัวอย่างที่ 2: กรองแถวที่มีสตริงในรายการ
รหัสต่อไปนี้แสดงวิธีการกรองแถวใน DataFrame ที่มี “A” หรือ “B” ในคอลัมน์ทีม:
df[df[" team "]. str . contains (“ A|B ”)] team conference points 0 A East 11 1 A East 8 2 A East 10 3 B West 6 4 B West 6
เฉพาะบรรทัดที่คอลัมน์ทีมมี ‘A’ หรือ ‘B’ เท่านั้นที่จะถูกเก็บไว้
ตัวอย่างที่ 3: กรองแถวที่มีสตริงบางส่วน
ในตัวอย่างก่อนหน้านี้ เรากรองตามแถวที่ตรงกับสตริงตั้งแต่หนึ่งสตริงขึ้นไปทุกประการ
อย่างไรก็ตาม หากเราต้องการกรองแถวที่มีสตริงบางส่วน เราสามารถใช้ไวยากรณ์ต่อไปนี้:
#identify partial string to look for keep=[" Wes "] #filter for rows that contain the partial string "Wes" in the conference column df[df. conference . str . contains (' | ' .join (keep))] team conference points 3 B West 6 4 B West 6
เฉพาะบรรทัดที่คอลัมน์การประชุมมีคำว่า “เวส” เท่านั้นที่จะถูกเก็บไว้
แหล่งข้อมูลเพิ่มเติม
บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่น ๆ ในแพนด้า:
วิธีลบแถวใน Pandas DataFrame ตามเงื่อนไข
วิธีกรอง Pandas DataFrame ในหลายเงื่อนไข
วิธีใช้ตัวกรอง “NOT IN” ใน Pandas DataFrame