Computer >> Máy Tính >  >> Lập trình >> Python

Làm cách nào để lọc các hàng trong Pandas bằng regex?

Biểu thức chính quy (regex) là một chuỗi các ký tự xác định một mẫu tìm kiếm. Để lọc các hàng trong Pandas theo regex, chúng tôi có thể sử dụng str.match () phương pháp.

Các bước

  • Tạo dữ liệu dạng bảng hai chiều, có thể thay đổi kích thước, có khả năng không đồng nhất, df .
  • In DataFrame đầu vào, df .
  • Khởi tạo một biến regex cho biểu thức. Cung cấp giá trị chuỗi dưới dạng regex, ví dụ:chuỗi 'J. *' sẽ lọc tất cả các mục bắt đầu bằng chữ 'J'.
  • Sử dụng df.column_name.str.match (regex) để lọc tất cả các mục nhập trong tên cột nhất định theo regex được cung cấp.

Ví dụ

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)]

Đầu ra

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