Pandas: วิธีลบบรรทัดที่มีสตริงเฉพาะ
คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อลบแถวที่มีสตริงบางอย่างใน Pandas DataFrame:
df[df[" col "]. str . contains (" this string ") == False ]
บทช่วยสอนนี้จะอธิบายหลายตัวอย่างการใช้งานจริงของไวยากรณ์นี้กับ 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 ")== False ] team conference points 3 B West 6 4 B West 6 5 C East 5
ตัวอย่างที่ 2: ลบแถวที่มีสตริงในรายการ
รหัสต่อไปนี้แสดงวิธีการลบแถวทั้งหมดออกจาก DataFrame ที่มี “A” หรือ “B” ในคอลัมน์ทีม:
df[df[" team "]. str . contains (" A|B ")== False ] team conference points 5 C East 5
ตัวอย่างที่ 3: ลบแถวที่มีสตริงบางส่วน
ในตัวอย่างก่อนหน้านี้ เราได้ลบแถวตามแถวที่ตรงกับสตริงตั้งแต่หนึ่งสตริงขึ้นไปทุกประการ
อย่างไรก็ตาม หากเราต้องการลบบรรทัดที่มีสตริงบางส่วน เราสามารถใช้ไวยากรณ์ต่อไปนี้:
#identify partial string to look for discard = [" Wes "] #drop rows that contain the partial string "Wes" in the conference column df[~df. conference . str . contains (' | ' .join (discard))] team conference points 0 A East 11 1 A East 8 2 A East 10 5 C East 5
คุณสามารถดูบทช่วยสอนเกี่ยวกับแพนด้าเพิ่มเติมได้ใน หน้านี้