مكتبات البايثون لتحليل البيانات (٣)
انظر إلى السطر الأول: إذا أردت حذف الصفوف المكررة من الجدول، فاستخدم الأمر data = data.drop_duplicates() لتنظيف البيانات. وللتأكد من عدم وجود صفوف مكررة، اكتب dup = data.duplicated() ثم dup.value_counts() لترى النتيجة؛ إن ظهر لك False وأمامه عدد الصفوف مثل 5426 فهذا يعني أن جدولك أصبح سليماً وخالياً من التكرار. ننتقل الآن إلى مشكلة أخرى وهي الخلايا الفارغة؛ لو كان لديك خلايا بلا بيانات، فاستخدم دالة data.isnull() لتعطيك قيمة صواب True إن كانت الخلية فارغة، وخطأ False إن كانت ممتلئة. ولو أردت معرفة عدد الخلايا الفارغة في كل عمود بشكل سربع، فاكتب missing_values_count = data.isnull().sum() ثم اطبع المتغير لتظهر لك أسماء الأعمدة وبجانب كل عمود عدد الخلايا الفارغة فيه، مثل وجود 5 خلايا فارغة في عمود المنطقة الإدارية و6 في المرحلة. أخيراً، إذا أردت التخلص من هذه الصفوف الفارغة تماماً وحذفها من الجدول، فاستخدم الدالة dropna() بنفس طريقة الحذف السابقة لتضمن دقة بياناتك.
يعتمد تنظيف البيانات في لغة بايثون على إزالة العقبات التي تفسد دقة التحليل، مثل الصفوف المكررة والخلايا الفارغة والبيانات الخاطئة. تقوم وظيفة drop_duplicates() بحذف التكرارات بعد كشفها عبر duplicated()، بينما تكشف وظيفة isnull().sum() عن عدد الخلايا الفارغة في كل عمود ليتم التخلص منها باستخدام dropna(). أما معالجة البيانات الخاطئة فتتطلب تحديد الأخطاء الرقمية كالقيم السالبة في الأعمدة المخصصة للأعداد الموجبة ثم التعامل معها بالحذف أو التعديل. مثال ذلك: كتابة الأمر data.dropna() لتنظيف الجدول من كل القيم المفقودة دفعة واحدة.
الفكرة الأساسية
تنظيف البيانات هو الخطوة التي تسبق أي تحليل حقيقي لجعلها خالية من العيوب والأخطاء.
الشرح
تأتي البيانات غالباً ومعها مشكلات تفسد نتائج الحسابات. المشكلة الأولى هي الصفوف المكررة التي تضاعف حجم الأرقام بلا مبرر، ويتم التعامل معها بوظيفة drop_duplicates بعد التأكد منها. المشكلة الثانية هي الخلايا الفارغة التي تعني وجود نقص في السجلات، ويكشف عنها الأمر isnull().sum() ليعطيك مجموع الفراغات في كل عمود، ثم تحذف بالوظيفة dropna(). المشكلة الثالثة هي البيانات الخاطئة، مثل وجود أرقام سالبة في عمود مخصص لعدد الطلبة، وهو أمر غير منطقي يتطلب الفحص والتصحيح.
مثال محلول خطوة بخطوة
- لكشف الخلايا الفارغة في كل عمود ومعرفة عددها، اكتب الأمر: missing_values_count = data.isnull().sum()
- لعرض النتائج الناتجة عن هذا الأمر، اكتب اسم المتغير: missing_values_count
- لحذف جميع الصفوف التي تحتوي على خلايا فارغة وتحديث الجدول، اكتب الأمر: data = data.dropna()
- للتحقق من نظافة الجدول وخلوه تماماً من القيم المفقودة، كرر أمر العد ليظهر الناتج صفراً لكل الأعمدة.
أخطاء شائعة
- نسيان تحديث المتغير بعد تطبيق وظيفة الحذف، مما يجعل البرنامج يحتفظ بالبيانات القديمة دون تعديل.
- استخدام وظيفة الحذف دون التأكد مسبقاً من وجود خلايا فارغة أو صفوف مكررة بالفعل.
سؤالان للتدريب مع الإجابة
السؤال الأول: ما الوظيفة المستخدمة لمعرفة عدد الخلايا الفارغة في كل عمود من إطار البيانات؟ الإجابة: isnull().sum() السؤال الثاني: كيف تتخلص من الصفوف المكررة في مجموعة البيانات؟ الإجابة: باستخدام الوظيفة drop_duplicates()