1. جلب البيانات المرن (Flexible Data Loading)
واجهة اختيار الملفات: استخدام مكتبة tkinter.filedialog لإتاحة نافذة تفاعلية للمستخدم لتحديد مكان ملف البيانات من الجهاز بسهولة.
دعم صيغ مختلفة: الدالة load_dataset تتعامل مع صيغ ملفات متعددة مثل CSV بترميزات مختلفة (UTF-8 أو latin1) وملفات Excel (.xls, .xlsx).
2. التنظيف ومعالجة المشاكل (Data Cleaning Pipeline)
إزالة التكرارات (remove_duplicate): حذف السجلات المكررة حسابياً وإظهار عدد الصفوف التي تم حذفها بوضوح في الشاشة.
التعامل مع القيم المفقودة (handle_missing_data):
للأعمدة الرقمية: تعبئة القيم المفقودة باستخدام الوسيط الحسابي (Median).
للأعمدة النصية/الفئوية: تعبئة القيم المفقودة باستخدام المنوال (Mode).
3. هندسة الخصائص والتفاعل مع المستخدم (Interactive Feature Engineering)
تحتوي الدالة add_new_column على قائمة خيارات تفاعلية من خلال موجه الأوامر (Terminal) تتيح للمستخدم إضافة أعمدة جديدة مشتقة وحسابية للبيانات:
هامش الربح (Profit Margin %): حساب نسبة الربح مقارنة بالمبيعات.
وقت الشحن (Shipping Time): حساب الفرق بالأيام بين تاريخ الطلب وتاريخ الشحن (Ship Date - Order Date).
تصنيف أداء المبيعات (Sales Performance Category): تقسيم المبيعات إلى فئات (Low, Medium, High) باستخدام pd.qcut.
خصومات المبيعات (Total Discounts): حساب القيمة المخصومة ونسبتها.
اسم يوم الطلب (Order Day Name): استخراج اسم اليوم الذي تم فيه الطلب (مثل Monday, Tuesday).
الربع السنوي (Quarterly Performance): تحديد الربع السنوي للطلب (Q1, Q2, ...).
4. التحليل البياني والتجميع (Data Aggregation & Visualization)
في الجزء الأخير من السكربت، يتم تجميع البيانات (Grouping) وإنشاء 4 رسوم بيانية باستخدام مكتبة matplotlib.pyplot لتلخيص الأداء التجاري:
إجمالي الأرباح حسب الولاية/المنطقة (Total profit by states): رسم بياني شريطي أفقي (barh).
إجمالي الأرباح حسب الفئة (Total profit by category): رسم بياني شريطي (bar).
توزيع المبيعات حسب أيام الأسبوع (Sales distribution by day).
الأرباح حسب الربع السنوي (Profit by quarter).