في هذا العمل قمت بتنظيف ومعالجة بيانات مبيعات مكونة من 2000 صفًاو 11 أعمدة، باستخدام لغة Python ومكتبة Pandas. الهدف من العملية كان تحويل ملف بيانات خام مليء بالتفاصيل غير المنظمة إلى ملف منظم ونظيف جاهز للاستخدام في التحليل أو بناء نماذج تعلم الآلة (Machine Learning)
معالجة القيم المفقودة (Missing Values):
القيم المفقوده كانت في Cost , Delivery date
تم استخدام طرق مثل forward fill و backward fill و filling using median لضمان عدم وجود فراغات أو قيم ناقصة.
النتيجة: جميع الأعمدة أصبحت مكتملة 100% بدون أي بيانات ناقصة
التعامل مع القيم الشاذة (Outliers):
طبقت قاعدة IQR (Interquartile Range) لاكتشاف القيم الغريبة وغير المنطقية.
تم تعديل هذه القيم للحفاظ على دقة البيانات.
تحويل الأعمدة النصية إلى أكواد عددية (Encoding):
الاعمده النصيه مثل ( Carrier و Destination و Origin_Warehouse و Status )
باستخدام One-Hot Encoding → فتم إنشاء أعمدة إضافية منطقية (True/False) لكل فئة
كل الأعمدة (bool) الناتجة من One-Hot Encoding تم تحويلها إلى النوع int8 لتوفير الذاكرة
تنسيق التاريخ (Date Feature Engineering):
فصلت عمود التاريخ Delivery_Date إلى ثلاثة أعمدة مستقلة: day, month, year.
فصلت عمود التاريخ Shipping_Date إلى ثلاثة أعمدة مستقلة: day, month, year.
هذا ساعد في جعل البيانات أكثر مرونة للاستخدام في التحليل الزمني (Time Series Analysis)
(Data Types Optimization):
تحويل بعض الأعمدة إلى أنواع بيانات أصغر حجمًا مثل int16 لتقليل استهلاك الذاكرة.
النتيجة: حجم الملف انخفض وأصبح أكثر كفاءة
إنشاء أعمدة جديدة للتحليل (Feature Engineering)
miles_per_day = المسافة ÷ عدد أيام النقل → لمعرفة معدل المسافة اليومية.
cost_per_kg = التكلفة ÷ الوزن → لحساب تكلفة الشحن لكل كيلوجرام.
cost_per_mile = التكلفة ÷ المسافة → لحساب تكلفة الميل الواحد.
تصنيف السرعة (Speed Category)
تم تقسيم الشحنات إلى فئات زمنية باستخدام pd.cut:
fast إذا كان زمن النقل ≤ يومين.
normal إذا كان بين 3–5 أيام.
slow إذا تجاوز 5 أيام