تم الحل: تصفية صفوف الباندا بقيم غامضة

في عالم تحليل البيانات ، من الشائع مواجهة مجموعات كبيرة من البيانات تتطلب معالجة البيانات ومعالجتها. إحدى هذه المشكلات التي تظهر غالبًا هي تصفية الصفوف بناءً على القيم غير الواضحة ، لا سيما عند التعامل مع البيانات النصية. توفر Pandas ، مكتبة Python الشهيرة لمعالجة البيانات ، حلاً أنيقًا للمساعدة في معالجة هذه المشكلة. في هذه المقالة ، سنتعمق في كيفية استخدام Pandas لتصفية الصفوف باستخدام قيم غامضة ، واستكشاف الكود خطوة بخطوة ، ومناقشة المكتبات والوظائف ذات الصلة التي يمكن أن تساعد في حل المشكلات المماثلة.

لبدء معالجة هذه المشكلة ، سنستفيد من الباندا مكتبة جنبا إلى جنب مع wuzzy غامض مكتبة تساعد في حساب التشابه بين السلاسل المختلفة. ال wuzzy غامض تستخدم المكتبة مسافة Levenshtein ، وهي مقياس للتشابه يعتمد على عدد عمليات التحرير (عمليات الإدراج أو الحذف أو الاستبدالات) اللازمة لتحويل سلسلة إلى أخرى.

تركيب واستيراد المكتبات المطلوبة

للبدء ، سنحتاج إلى تثبيت واستيراد المكتبات الضرورية. يمكنك استخدام النقطة لتثبيت كل من 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)

في الكود أعلاه ، نحدد وظيفة filter_rows يأخذ أربعة معلمات: DataFrame ، واسم العمود ، وسلسلة البحث ، وعتبة التشابه. تقوم بإرجاع DataFrame الذي تمت تصفيته بناءً على العتبة المحددة ، والتي يتم حسابها باستخدام fuzz.token_sort_ratio وظيفة من مكتبة fuzzywuzzy.

فهم الكود خطوة بخطوة

  • أولاً ، نقوم بإنشاء DataFrame يسمى df تحتوي على مجموعة بياناتنا.
  • بعد ذلك ، نحدد سلسلة البحث الخاصة بنا على أنها "Tee shirt" وقمنا بتعيين حد تشابه قدره 70. يمكنك ضبط قيمة الحد وفقًا لمستوى التشابه الذي تريده.
  • ثم نقوم بإنشاء وظيفة تسمى filter_rows، الذي يقوم بتصفية DataFrame استنادًا إلى مسافة Levenshtein بين سلسلة البحث وقيمة كل صف في العمود المحدد.
  • أخيرا ، نسميها filter_rows وظيفة للحصول على DataFrame المصفاة لدينا ، filter_df.

في الختام ، تعد Pandas ، بالاشتراك مع مكتبة fuzzywuzzy ، أداة ممتازة لتصفية الصفوف بناءً على القيم الضبابية. يتيح لنا فهم هذه المكتبات ووظائفها معالجة البيانات بكفاءة وحل مهام معالجة البيانات المعقدة.

الوظائف ذات الصلة:

اترك تعليق