"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيفية تصفية إطار بيانات Pandas أو السلسلة بكفاءة مع شروط متعددة؟

كيفية تصفية إطار بيانات Pandas أو السلسلة بكفاءة مع شروط متعددة؟

تم النشر بتاريخ 2024-11-01
تصفح:873

How to Efficiently Filter Pandas DataFrame or Series with Multiple Conditions?

تصفية إطار بيانات Pandas أو السلسلة ذات الشروط المتعددة بكفاءة

يوفر Pandas عددًا من الطرق لتصفية البيانات، بما في ذلك إعادة الفهرسة ()، وتطبيق ()، وخريطة () . ومع ذلك، عند تطبيق مرشحات متعددة، تصبح الكفاءة مصدر قلق.

للحصول على تصفية محسنة، فكر في استخدام الفهرسة المنطقية. يدعم كل من Pandas وNumpy الفهرسة المنطقية، والتي تعمل مباشرة على مصفوفة البيانات الأساسية دون إنشاء نسخ غير ضرورية.

إليك مثال على الفهرسة المنطقية:

df.loc[df['col1'] >= 1, 'col1']

يرجع هذا التعبير سلسلة Pandas التي تحتوي فقط على الصفوف التي تكون فيها القيم الموجودة في العمود 'col1' أكبر من أو تساوي 1.

إلى قم بتطبيق عوامل تصفية متعددة، واستخدم العوامل المنطقية '&' (AND) و'|' (أو). على سبيل المثال:

df[(df['col1'] >= 1) & (df['col1'] <=1 )]

يُرجع هذا التعبير DataFrame الذي يحتوي فقط على الصفوف التي تتراوح فيها القيم الموجودة في العمود 'col1' بين 1 و1 ضمنًا.

For الوظائف المساعدة، فكر في تحديد الوظائف التي تأخذ DataFrame وترجع سلسلة منطقية، مما يسمح لك بدمج مرشحات متعددة باستخدام عوامل التشغيل المنطقية.

def b(x, col, op, n):
    return op(x[col],n)

def f(x, *b):
    return x[(np.logical_and(*b))]

يقدم Pandas 0.13 طريقة query()، والتي توفر طريقة أكثر فعالية للتعبير عن شروط التصفية المعقدة. بافتراض أن معرفات الأعمدة صالحة، تقوم التعليمات البرمجية التالية بتصفية DataFrame df بناءً على شروط متعددة:

df.query('col1 <= 1 & 1 <= col1')
باختصار، توفر الفهرسة المنطقية طريقة فعالة لتطبيق مرشحات متعددة على Pandas DataFrames أو Series دون إنشاء نسخ غير ضرورية. استخدم عوامل التشغيل المنطقية والوظائف المساعدة للجمع بين مرشحات متعددة للحصول على وظائف موسعة.

بيان الافراج أعيد طبع هذه المقالة على: 1729394837 في حالة وجود أي انتهاك، يرجى الاتصال بـ [email protected] لحذفها
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3