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

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

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