ในโลกของการวิเคราะห์ข้อมูล เป็นเรื่องปกติที่จะพบชุดข้อมูลขนาดใหญ่ที่ต้องมีการจัดการและประมวลผลข้อมูล ปัญหาหนึ่งที่มักเกิดขึ้นคือการกรองแถวตามค่าฟัซซี โดยเฉพาะอย่างยิ่งเมื่อต้องจัดการกับข้อมูลที่เป็นข้อความ 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 เป็นเครื่องมือที่ยอดเยี่ยมสำหรับการกรองแถวตามค่าฟัซซี การทำความเข้าใจไลบรารีเหล่านี้และฟังก์ชันต่างๆ ของไลบรารีเหล่านี้ช่วยให้เราจัดการข้อมูลได้อย่างมีประสิทธิภาพและแก้ไขงานประมวลผลข้อมูลที่ซับซ้อนได้