נפתרה: פנדות מסננות שורות לפי ערכים מטושטשים

בעולם ניתוח הנתונים, מקובל להיתקל בסט נתונים גדולים הדורשים מניפולציה ועיבוד נתונים. בעיה אחת כזו שמתעוררת לעתים קרובות היא סינון שורות על סמך ערכים מטושטשים, במיוחד כאשר עוסקים בנתונים טקסטואליים. 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)

בהנחה שאנו רוצים לסנן שורות המכילות בגדים עם שמות הדומים ל-"Tee shirt", נצטרך להשתמש בספריית 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)

בקוד לעיל, אנו מגדירים פונקציה מסנן_שורות זה לוקח ארבעה פרמטרים: DataFrame, שם העמודה, מחרוזת החיפוש וסף הדמיון. הוא מחזיר DataFrame מסונן בהתבסס על הסף שצוין, אשר מחושב באמצעות ה- fuzz.token_sort_ratio פונקציה מספריית fuzzywuzzy.

הבנת הקוד שלב אחר שלב

  • ראשית, אנו יוצרים DataFrame בשם df המכיל את מערך הנתונים שלנו.
  • לאחר מכן, אנו מגדירים את מחרוזת החיפוש שלנו כ"חולצת טי" ומגדירים סף דמיון של 70. ניתן להתאים את ערך הסף בהתאם לרמת הדמיון הרצויה.
  • לאחר מכן אנו יוצרים פונקציה שנקראת מסנן_שורות, המסנן את ה-DataFrame בהתבסס על מרחק Levenshtein בין מחרוזת החיפוש לערך של כל שורה בעמודה שצוינה.
  • לבסוף, אנו קוראים ל- מסנן_שורות פונקציה כדי להשיג את ה-DataFrame המסונן שלנו, filtered_df.

לסיכום, Pandas, בשילוב עם ספריית fuzzywuzzy, הוא כלי מצוין לסינון שורות על סמך ערכים מטושטשים. הבנת ספריות אלו ותפקודיהן מאפשרת לנו לתפעל ביעילות נתונים ולפתור משימות עיבוד נתונים מורכבות.

הודעות קשורות:

השאירו תגובה