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