# -*- coding: utf-8 -*- """ تحدي تحليل بيانات المخزون بـ Python (Pandas) — الحل والإجابات النموذجية dataanalysisisfuture.com استخدم نفس ملف بيانات المخزون (inventory_dataset_10000.xlsx) مع هذا الكود. حاول حل الأسئلة الخمسة بنفسك أولًا قبل النظر إلى الحل أدناه. """ import pandas as pd # --------------------------------------------------------------- # تحميل البيانات # --------------------------------------------------------------- df = pd.read_excel("inventory_dataset_10000.xlsx", sheet_name="بيانات المخزون") print("عدد الصفوف والأعمدة:", df.shape) print(df.columns.tolist()) print(df.head()) # --------------------------------------------------------------- # السؤال 1: ما إجمالي قيمة المخزون بالريال؟ # --------------------------------------------------------------- total_value = df["قيمة المخزون الإجمالية (ريال)"].sum() print("\nالسؤال 1 - إجمالي قيمة المخزون:", round(total_value, 2), "ريال") # الإجابة الصحيحة: 1,076,744,044.55 ريال تقريبًا # --------------------------------------------------------------- # السؤال 2: كم عدد المنتجات التي وصلت لحالة "منخفض - أعد الطلب"؟ # --------------------------------------------------------------- low_stock_count = (df["حالة المخزون"] == "منخفض - أعد الطلب").sum() print("السؤال 2 - عدد المنتجات منخفضة المخزون:", low_stock_count) # الإجابة الصحيحة: 507 منتجًا # --------------------------------------------------------------- # السؤال 3: من هو المورد الأعلى من حيث قيمة التوريد الإجمالية؟ # --------------------------------------------------------------- top_suppliers = ( df.groupby("المورد")["قيمة المخزون الإجمالية (ريال)"] .sum() .sort_values(ascending=False) ) print("السؤال 3 - أعلى 3 موردين:\n", top_suppliers.head(3)) # الإجابة الصحيحة: شركة الأفق الذهبي (116,132,176.97 ريال تقريبًا) # --------------------------------------------------------------- # السؤال 4: أي فئة منتجات تملك أعلى قيمة مخزون إجمالية؟ # --------------------------------------------------------------- top_categories = ( df.groupby("الفئة")["قيمة المخزون الإجمالية (ريال)"] .sum() .sort_values(ascending=False) ) print("السؤال 4 - ترتيب الفئات حسب القيمة:\n", top_categories) # الإجابة الصحيحة: الأغذية والمشروبات (163,996,002.16 ريال تقريبًا) # لاحظ الفارق الضئيل جدًا مع فئة الإلكترونيات - دقة الكود هنا مهمة جدًا # --------------------------------------------------------------- # السؤال 5: أي مستودع يحتوي على أكبر عدد من المنتجات منخفضة المخزون؟ # --------------------------------------------------------------- low_df = df[df["حالة المخزون"] == "منخفض - أعد الطلب"] warehouse_counts = low_df["المستودع"].value_counts() print("السؤال 5 - عدد المنتجات المنخفضة حسب المستودع:\n", warehouse_counts) # الإجابة الصحيحة: مستودع جدة (154 منتجًا) # --------------------------------------------------------------- # ملخص الإجابات النهائية # --------------------------------------------------------------- print("\n" + "=" * 50) print("ملخص الإجابات النموذجية:") print("1) إجمالي قيمة المخزون:", round(total_value, 2), "ريال") print("2) عدد المنتجات منخفضة المخزون:", low_stock_count) print("3) أعلى مورد:", top_suppliers.index[0]) print("4) أعلى فئة:", top_categories.index[0]) print("5) أكثر مستودع فيه نقص:", warehouse_counts.index[0])