Đã giải quyết: gấu trúc lọc hàng theo giá trị mờ

Trong thế giới phân tích dữ liệu, việc gặp phải các tập dữ liệu lớn yêu cầu thao tác và xử lý dữ liệu là điều phổ biến. Một vấn đề như vậy thường phát sinh là lọc các hàng dựa trên các giá trị mờ, đặc biệt khi xử lý dữ liệu văn bản. Pandas, một thư viện Python phổ biến để thao tác dữ liệu, cung cấp một giải pháp tinh tế để giúp giải quyết vấn đề này. Trong bài viết này, chúng ta sẽ đi sâu vào cách sử dụng Pandas để lọc các hàng bằng các giá trị mờ, khám phá mã từng bước và thảo luận về các thư viện và chức năng có liên quan có thể hỗ trợ giải quyết các vấn đề tương tự.

Để bắt đầu giải quyết vấn đề này, chúng ta sẽ tận dụng Gấu trúc thư viện cùng với mờ nhạt thư viện giúp tính toán sự giống nhau giữa các chuỗi khác nhau. Các mờ nhạt thư viện sử dụng khoảng cách Levenshtein, thước đo độ tương tự dựa trên số lần chỉnh sửa (chèn, xóa hoặc thay thế) cần thiết để chuyển đổi một chuỗi thành một chuỗi khác.

Cài đặt và nhập các thư viện cần thiết

Để bắt đầu, chúng ta cần cài đặt và nhập các thư viện cần thiết. Bạn có thể sử dụng pip để cài đặt cả Pandas vàuzzywuzzy:

pip install pandas
pip install fuzzywuzzy

Sau khi cài đặt, hãy nhập các thư viện trong mã Python của bạn:

import pandas as pd
from fuzzywuzzy import fuzz, process

Lọc các hàng dựa trên các giá trị mờ

Bây giờ chúng ta đã nhập các thư viện cần thiết, hãy tạo một tập dữ liệu hư cấu và giới thiệu cách lọc các hàng dựa trên các giá trị mờ. Trong ví dụ này, tập dữ liệu của chúng tôi sẽ bao gồm tên hàng may mặc và kiểu dáng tương ứng của chúng.

data = {'Garment': ['T-shirt', 'Polo shirt', 'Jeans', 'Leather jacket', 'Winter coat'],
        'Style': ['Casual', 'Casual', 'Casual', 'Biker', 'Winter']}
df = pd.DataFrame(data)

Giả sử chúng ta muốn lọc các hàng chứa quần áo có tên tương tự như “Tee shirt”, chúng ta sẽ cần sử dụng thư việnuzzywuzzy để thực hiện việc này.

search_string = "Tee shirt"
threshold = 70

def filter_rows(df, column, search_string, threshold):
    return df[df[column].apply(lambda x: fuzz.token_sort_ratio(x, search_string)) >= threshold]

filtered_df = filter_rows(df, 'Garment', search_string, threshold)

Trong đoạn mã trên, chúng ta định nghĩa một hàm filter_rows có bốn tham số: DataFrame, tên cột, chuỗi tìm kiếm và ngưỡng tương tự. Nó trả về một Khung dữ liệu được lọc dựa trên ngưỡng đã chỉ định, được tính bằng cách sử dụng fuzz.token_sort_ratio chức năng từ thư việnuzzywuzzy.

Hiểu Mã Từng Bước

  • Đầu tiên, chúng tôi tạo một DataFrame được gọi là df chứa tập dữ liệu của chúng tôi.
  • Tiếp theo, chúng tôi xác định chuỗi tìm kiếm của mình là “Tee shirt” và đặt ngưỡng tương tự là 70. Bạn có thể điều chỉnh giá trị ngưỡng theo mức độ tương tự mong muốn của mình.
  • Sau đó chúng ta tạo một hàm gọi là filter_rows, lọc Khung dữ liệu dựa trên khoảng cách Levenshtein giữa chuỗi tìm kiếm và giá trị của mỗi hàng trong cột được chỉ định.
  • Cuối cùng, chúng tôi gọi filter_rows để có được DataFrame đã lọc của chúng tôi, đã lọc_df.

Tóm lại, Pandas, kết hợp với thư việnuzzywuzzy, là một công cụ tuyệt vời để lọc các hàng dựa trên các giá trị mờ. Hiểu các thư viện này và các chức năng của chúng cho phép chúng ta thao tác dữ liệu một cách hiệu quả và giải quyết các tác vụ xử lý dữ liệu phức tạp.

bài viết liên quan:

Để lại một bình luận