تقنية

فحص القيم خارج المجال المتوقع: أين تبدأ الحدود وأين تنتهي؟

مسار للطول المسجل عبر مقارنة الحدود، ومسار مستقل للطول المفقود نحو مراجعة الغياب
رسم أصلي لقاعدة افتراضية؛ لا يمثل قياسات أو فحص ملف فعلي.

فحص القيم خارج المجال المتوقع يحتاج قاعدة مكتوبة: ما الحد الأدنى، وما الحد الأعلى، وهل نقبل القيم الواقعة على الطرفين؟ اختبر الأرقام الموجودة بهذه القاعدة، وسجل القيم المفقودة في مسار منفصل؛ فغياب الطول لا يعني أننا شاهدنا طولا أكبر من الحد.

الخلاصة السريعة

حدد المجال ووحدته وسياسة طرفيه، ثم افحص القيم الموجودة وافصل الغياب قبل تفسير نتيجة الفحص.

  • اكتب مجال المهمة ووحدته؛ في المثال المحلي نقبل أطوال الشرائط من 10 إلى 30 سنتيمترا، مع الطرفين.
  • اختيار شمول الحدود يغير قبول 10 و30؛ تتيح between تحديد شمول الطرفين أو استبعادهما أو شمول أحدهما. [1]
  • الغياب حالة مستقلة؛ يعرض مثال between العددي NaN بنتيجة False، فلا تكفي False وحدها لإثبات وجود رقم خارج المجال. [1]
  • راجع القيمة غير المطابقة مع مصدرها وقاعدة المجال قبل تصحيحها أو حذفها؛ قبول النطاق وحده لا يثبت دقة الطول.

من أين تأتي قاعدة المجال؟

نفترض مشروعا تعليميا لإعداد بيانات شرائط ورق. يطلب تعريف المهمة الاحتفاظ بالشرائط التي يبلغ طولها من 10 إلى 30 سنتيمترا، مع قبول الطرفين. اخترنا هذه الحدود للمثال؛ ليست قانونا عاما لأطوال الورق أو دليلا على أن كل طول آخر خطأ في القياس.

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

هل نقبل الرقم الذي يساوي الحد؟

تتيح Series.between اختيار شمول الطرفين أو استبعادهما أو شمول طرف واحد. الافتراضي هو شمول الطرفين. [1]

لذلك تقبل قاعدة مثالنا الطولين 10 و30، وترفض الطول 31 لهذه المهمة. لو اخترنا مجالا مفتوحا يستبعد الطرفين، فلن يقبل الفحص 10 أو 30 أيضا. لا نكتب «بين عشرة وثلاثين» ونترك هذا القرار للتخمين؛ نصرح بالشمول في بطاقة البيانات ورسالة الفحص. الأعداد هنا مفترضة، ولم ننفذ فحص مكتبة على ملف شرائط.

لماذا نفصل الغياب قبل عد المخالفات؟

يعرض مثال الوثيقة سلسلة عددية تحتوي NaN، وتكون نتيجة between لذلك الموضع False. [1]

في جدولنا المقترح نميز ثلاث حالات، حتى لا نعطي خانة بلا طول معنى رقم شاهدناه فعلا. تعرض القيم التالية تفسير قاعدة المثال، وليست مخرجات تشغيل برنامج.

  • نعد القيم الموجودة التي تخالف الحدود في قائمة مراجعة النطاق.
  • ونعد الأطوال غير المتاحة في قائمة الغياب؛ لا ننسب إليها قيما لم تسجل.
الطول المفترض بالسنتيمترتفسير القاعدة المحلية
10داخل المجال مع قبول الطرفين
30داخل المجال مع قبول الطرفين
31خارج المجال المحدد للمهمة
مفقودطول غير متاح؛ يراجع منفصلا

ماذا نفعل بالقيمة غير المطابقة؟

نسأل أولا: هل الرقم منقول بصورة صحيحة؟ هل وحدته هي وحدة القاعدة؟ وهل المجال يصف المهمة المطلوبة فعلا؟ قد تكون قيمة 31 صحيحة لكنها خارج نطاق المشروع المختار، وقد يكون السبب خطأ نقل أو اختلاف وحدة. لا تحسم المقارنة بين الحدين أي تفسير من هذه التفسيرات.

نقترح حفظ القيمة الأصلية وسبب إحالتها للمراجعة. لا نستبدل 31 بالحد 30 لمجرد جعل الملف ينجح؛ ذلك يغير المعلومة. كما لا نعلن أن كل قيمة مقبولة دقيقة؛ فقد يقع خطأ نقل داخل المجال نفسه. يحتاج تجهيز بيانات النموذج إلى تفسير الفحص، مع مراجعة مناسبة للمصدر، لا إلى علامة قبول وحدها.

المصادر ومتابعة القراءة

  1. pandas: Series.between (يفتح في نافذة جديدة)pandas.pydata.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.