مجموع القيم المفقودة والصفر قد يلتبسان عند إعداد بيانات النموذج. تعرض وثائق pandas أن Series.sum يعيد صفرا افتراضيا للسلسلة الفارغة أو التي جميع قيمها مفقودة. [1] لكن ظهور هذا الصفر لا يعني أننا شاهدنا صناديق فارغة أو قسنا كمية تساوي صفرا.
الخلاصة السريعة
راجع القيم التي دخلت الحساب وعدد القيم المعروفة؛ الصفر الناتج من غيابها لا يثبت أن الكمية الفعلية معدومة.
- في السلوك الموثق الافتراضي، قد تعطي السلسلة الفارغة أو المفقودة كلها مجموعا صفرا؛ افصل ذلك عن صفر مسجل فعلا. [1]
- يتجاوز skipna=True القيم المفقودة افتراضيا؛ مجموع القيم المعروفة وحدها ليس بالضرورة مجموع جميع الوحدات. [1]
- يحدد min_count عدد القيم غير المفقودة اللازم للحساب؛ الأقل منه يعطي NA، و1 يمنع صفرا عند غياب كل القيم في المثال الموثق. [1]
- اعرض مع المجموع نطاقه وعدد القيم المعروفة والمفقودة؛ قبول الحساب لا يثبت اكتمال البيانات أو صحة التسجيل.
ما الفرق بين صفر معروف وغياب كل القيم؟
نتخيل درجين يحفظان أزرارا للتدريب على العد. في الحالة أ سجلنا صفرا لكل درج بعد عد مفترض؛ وفي الحالة ب لم يسجل عدد أي درج. الحالة الأولى تحمل قيما معلومة وفق تعريف المثال، والثانية تحمل غيابا. لا نحول غياب التسجيل إلى خبر عن محتويات الدرجين.
توضح الوثائق أن مجموع سلسلة فارغة أو مفقودة كلها يساوي صفرا افتراضيا. [1] لذلك لا نقرأ خانة المجموع وحدها. نسأل هل جاءت من أعداد مسجلة، أم من تطبيق قاعدة حساب على مدخلات لم تتضمن قيما معروفة؟ هذا فرق في المعنى الذي سنقدمه للنموذج أو مستخدم التقرير.
ماذا يعني مجموع القيم المعروفة فقط؟
نفترض حالة ج: ثلاثة أزرار مسجلة في الدرج الأول، وعدد الدرج الثاني مفقود. نستطيع وصف 3 بأنه مجموع العدد المعروف في المثال، لكننا لا نعلن أنه العدد الكلي في الدرجين. الدرج غير المسجل قد يحتوي أزرارا؛ ونحن لم نعرف قيمته.
القيمة الافتراضية skipna=True تستبعد القيم المفقودة عند حساب النتيجة. [1]
في الجدول التالي نركز على معنى البيانات، لا مخرجات تشغيل برنامج. لم نعد أزرارا فعلية ولم نستدع دالة على ملف.
| الحالة الافتراضية | الأعداد المسجلة | ما نعرفه |
|---|---|---|
| أ | صفر وصفر | المجموع المسجل صفر وفق المثال |
| ب | مفقود ومفقود | لا عدد مسجلا لأي درج |
| ج | 3 ومفقود | المعروف 3؛ مجموع الدرجين غير معلوم |
متى يمنع min_count النتيجة التي لا نريدها؟
يطلب min_count حدا أدنى من القيم غير المفقودة؛ إذا قل عددها عنه تكون النتيجة NA. وتعرض الوثائق min_count=1 لسلسلة فارغة أو مفقودة كلها بدلا من الصفر الافتراضي. [1]
هذا شرط حساب، لا وسيلة لاسترجاع الأعداد الغائبة. وفي المثال، اشتراط قيمة واحدة لا يجعل الحالة ج مكتملة، لأنها تحمل قيمة معروفة واحدة فقط. وإذا كان سؤالنا يتطلب عد الدرجين، نحدد حاجته صراحة بدلا من افتراض أن شرط 1 يكفي لكل سؤال.
كيف نعرض المجموع دون تضليل؟
نقترح حقولا متجاورة: مجموع القيم المعروفة، وعدد القيم المعروفة، وعدد القيم المفقودة، ووحدة العد، والوحدات التي شملها الحساب. في الحالة ج نكتب أن المجموع المعروف 3 يخص درجا واحدا من درجين؛ لا نطلق عليه «عدد الأزرار الكلي».
ونحفظ الفرق بين قيمة صفر مسجلة وبين غياب القيمة، حتى إذا احتاجت المهمة لاحقا سياسة أخرى. شرط الحساب لا يثبت أن العد المسجل صحيح أو أن الصفوف تمثل كل الأدراج المطلوبة. راجع تعريف الهدف والنطاق قبل جعل الرقم الناتج مدخلا لتوقع أو أساسا لقرار.
المصادر ومتابعة القراءة
- pandas: Series.sum (يفتح في نافذة جديدة)pandas.pydata.org
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
