แก้ไขแล้ว: แพนด้ากรองแถวตามค่าฟัซซี

ในโลกของการวิเคราะห์ข้อมูล เป็นเรื่องปกติที่จะพบชุดข้อมูลขนาดใหญ่ที่ต้องมีการจัดการและประมวลผลข้อมูล ปัญหาหนึ่งที่มักเกิดขึ้นคือการกรองแถวตามค่าฟัซซี โดยเฉพาะอย่างยิ่งเมื่อต้องจัดการกับข้อมูลที่เป็นข้อความ Pandas ไลบรารี่ Python ยอดนิยมสำหรับการจัดการข้อมูล มอบโซลูชันที่สวยงามเพื่อช่วยจัดการกับปัญหานี้ ในบทความนี้ เราจะเจาะลึกวิธีใช้ Pandas เพื่อกรองแถวโดยใช้ค่าฟัซซี่ สำรวจโค้ดทีละขั้นตอน และหารือเกี่ยวกับไลบรารีและฟังก์ชันที่เกี่ยวข้องที่สามารถช่วยในการแก้ปัญหาที่คล้ายกัน

ในการเริ่มต้นแก้ไขปัญหานี้ เราจะใช้ประโยชน์จาก นุ่น ห้องสมุดพร้อมกับ ฟัซซี่วูซซี่ ไลบรารีที่ช่วยคำนวณความคล้ายคลึงกันระหว่างสตริงต่างๆ เดอะ ฟัซซี่วูซซี่ ไลบรารีใช้ระยะทาง Levenshtein ซึ่งเป็นการวัดความคล้ายคลึงกันตามจำนวนการแก้ไข (การแทรก การลบ หรือการแทนที่) ที่จำเป็นในการแปลงสตริงหนึ่งเป็นอีกสตริงหนึ่ง

การติดตั้งและนำเข้าไลบรารีที่จำเป็น

ในการเริ่มต้น เราจะต้องติดตั้งและนำเข้าไลบรารีที่จำเป็น คุณสามารถใช้ pip เพื่อติดตั้งทั้ง Pandas และ fuzzywuzzy:

pip install pandas
pip install fuzzywuzzy

เมื่อติดตั้งแล้ว ให้นำเข้าไลบรารีในโค้ด Python ของคุณ:

import pandas as pd
from fuzzywuzzy import fuzz, process

การกรองแถวตามค่าฟัซซี่

ตอนนี้เราได้นำเข้าไลบรารีที่จำเป็นแล้ว มาสร้างชุดข้อมูลสมมติและแสดงวิธีกรองแถวตามค่าฟัซซี่ ในตัวอย่างนี้ ชุดข้อมูลของเราจะประกอบด้วยชื่อเสื้อผ้าและสไตล์ที่สอดคล้องกัน

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

สมมติว่าเราต้องการกรองแถวที่มีเสื้อผ้าที่มีชื่อคล้ายกับ "เสื้อทีเชิร์ต" เราจะต้องใช้ไลบรารี fuzzywuzzy เพื่อดำเนินการนี้ให้สำเร็จ

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)

ในโค้ดข้างต้น เรากำหนดฟังก์ชัน filter_rows ที่ใช้สี่พารามิเตอร์: DataFrame ชื่อคอลัมน์ สตริงการค้นหา และเกณฑ์ความคล้ายคลึงกัน โดยจะส่งคืน DataFrame ที่กรองตามเกณฑ์ที่ระบุ ซึ่งคำนวณโดยใช้ fuzz.token_sort_ratio ฟังก์ชันจากไลบรารี fuzzywuzzy

ทำความเข้าใจโค้ดทีละขั้นตอน

  • ขั้นแรก เราสร้าง DataFrame ที่เรียกว่า df ที่มีชุดข้อมูลของเรา
  • ต่อไป เรากำหนดสตริงการค้นหาของเราเป็น "เสื้อทีเชิ้ต" และตั้งค่าเกณฑ์ความคล้ายคลึงเป็น 70 คุณสามารถปรับค่าเกณฑ์ตามระดับความคล้ายคลึงที่คุณต้องการ
  • จากนั้นเราก็สร้างฟังก์ชั่นที่เรียกว่า filter_rowsซึ่งจะกรอง DataFrame ตามระยะทาง Levenshtein ระหว่างสตริงการค้นหาและค่าของแต่ละแถวในคอลัมน์ที่ระบุ
  • สุดท้ายเราเรียกว่า filter_rows ฟังก์ชันเพื่อรับ DataFrame ที่กรองแล้วของเรา filtered_df.

โดยสรุป Pandas ร่วมกับไลบรารี fuzzywuzzy เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการกรองแถวตามค่าฟัซซี การทำความเข้าใจไลบรารีเหล่านี้และฟังก์ชันต่างๆ ของไลบรารีเหล่านี้ช่วยให้เราจัดการข้อมูลได้อย่างมีประสิทธิภาพและแก้ไขงานประมวลผลข้อมูลที่ซับซ้อนได้

กระทู้ที่เกี่ยวข้อง:

แสดงความคิดเห็น