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

จะกรองแถวใน Pandas ด้วย regex ได้อย่างไร


นิพจน์ทั่วไป (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