في سيناريوهات تحليل البيانات، غالبًا ما يكون تطبيق مرشحات متعددة لتضييق النتائج أمرًا بالغ الأهمية. تهدف هذه المقالة إلى معالجة نهج فعال لتسلسل عمليات المقارنة المتعددة على كائنات بيانات Pandas.
الهدف هو معالجة قاموس العوامل العلائقية وتطبيقها بشكل إضافي على Pandas معينة سلسلة أو DataFrame، مما يؤدي إلى مجموعة بيانات تمت تصفيتها. تتطلب هذه العملية تقليل نسخ البيانات غير الضرورية، خاصة عند التعامل مع مجموعات البيانات الكبيرة.
توفر Pandas آلية عالية الكفاءة لتصفية البيانات باستخدام الفهرسة المنطقية. تتضمن الفهرسة المنطقية إنشاء شروط منطقية ثم فهرسة البيانات باستخدام هذه الشروط. خذ بعين الاعتبار المثال التالي:
df.loc[df['col1'] >= 1, 'col1']
يحدد سطر التعليمات البرمجية هذا جميع الصفوف في DataFrame df حيث القيمة الموجودة في العمود "col1" أكبر من أو تساوي 1. والنتيجة هي كائن سلسلة جديد يحتوي على القيم التي تمت تصفيتها.
لتطبيق مرشحات متعددة، يمكننا دمج الشروط المنطقية باستخدام عوامل تشغيل منطقية مثل & (و) و | (أو). على سبيل المثال:
df[(df['col1'] >= 1) & (df['col1'] <= 1)]
تقوم هذه العملية بتصفية الصفوف حيث 'col1' أكبر من أو يساوي 1 وأقل من أو يساوي 1.
لتبسيط عملية تطبيق مرشحات متعددة، يمكننا إنشاء وظائف مساعدة:
def b(x, col, op, n):
return op(x[col], n)
def f(x, *b):
return x[(np.logical_and(*b))]
تنشئ الدالة b شرطًا منطقيًا لعمود وعامل معين، بينما تطبق f شروطًا منطقية متعددة على DataFrame أو السلسلة.
لاستخدام هذه الوظائف، يمكننا توفير قاموس لمعايير التصفية:
filters = {'>=': [1], 'b1 = b(df, 'col1', ge, 1)
b2 = b(df, 'col1', le, 1)
filtered_df = f(df, b1, b2)
يطبق هذا الكود المرشحات على العمود 'col1' في DataFrame df ويعيد DataFrame جديد مع النتائج التي تمت تصفيتها.
الوظائف المحسنة
قدم Pandas 0.13 طريقة الاستعلام، والتي توفر طريقة ملائمة لتطبيق المرشحات باستخدام تعبيرات السلسلة. بالنسبة لمعرفات الأعمدة الصالحة، يصبح الكود التالي ممكنًا:df.query('col1 يحقق هذا السطر نفس التصفية التي لدينا المثال السابق باستخدام بناء جملة أكثر إيجازًا.
من خلال استخدام الفهرسة المنطقية والوظائف المساعدة، يمكننا تطبيق مرشحات متعددة بكفاءة على إطارات بيانات Pandas وسلاسلها. يقلل هذا الأسلوب من نسخ البيانات ويعزز الأداء، خاصة عند العمل مع مجموعات كبيرة من البيانات.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3