Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

วิธีกรองแถวใน Pandas ด้วย Regular Expression (Regex)


Regular Expression (Regex) คือลำดับของตัวอักษรที่กำหนดรูปแบบการค้นหา เพื่อกรองแถวใน Pandas ด้วย Regex เราสามารถใช้เมธอด str.match()

ขั้นตอน

  • สร้างข้อมูลตารางสองมิติ df
  • พิมพ์ DataFrame อินพุต df
  • กำหนดตัวแปร regex สำหรับนิพจน์ ให้ค่าสตริงเป็น regex เช่น สตริง 'J.*' จะกรองรายการทั้งหมดที่ขึ้นต้นด้วยตัวอักษร 'J'
  • ใช้ df.column_name.str.match(regex) เพื่อกรองรายการทั้งหมดในคอลัมน์ที่กำหนดด้วย regex ที่ให้มา

ตัวอย่าง

import pandas as pd
df = pd.DataFrame(
    dict(
        name=['John', 'Jacob', 'Tom', 'Tim', 'Ally'],
        marks=[89, 23, 100, 56, 90],
        subjects=["Math", "Physics", "Chemistry", "Biology", "English"]
    )
)
print("Input DataFrame is:\n", df)
regex = 'J.*'
print("After applying ", regex, " DataFrame is:\n", df[df.name.str.match(regex)])
regex = 'A.*'
print("After applying ", regex, " DataFrame is:\n", df[df.name.str.match(regex)])

ผลลัพธ์

Input DataFrame is:
    name  marks  subjects
0  John    89      Math
1  Jacob    23    Physics
2  Tom    100  Chemistry
3  Tim     56    Biology
4  Ally    90    English
After applying J.* DataFrame is:
    name  marks  subjects
0  John    89      Math
1  Jacob    23    Physics
After applying A.* DataFrame is:
    name  marks  subjects
4  Ally    90    English