مجموعة المنطقة الأولى - كتاب علم البيانات - الصف 11 - الفصل 1 - المملكة العربية السعودية

الكتاب: كتاب علم البيانات - الصف 11 - الفصل 1 | المادة: علم البيانات | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

الدرس: مجموعة المنطقة الأولى

📚 معلومات الصفحة

الكتاب: كتاب علم البيانات - الصف 11 - الفصل 1 | المادة: علم البيانات | المرحلة: الصف 11 | الفصل الدراسي: 1

الدولة: المملكة العربية السعودية | المنهج: المنهج السعودي - وزارة التعليم

نوع المحتوى: درس تعليمي

📝 ملخص الصفحة

📚 استخدام وظيفة (df.groupby) لتجميع إطار البيانات في أعمدة متعددة

المفاهيم الأساسية

تجميع البيانات (Grouping): وضع عناصر البيانات في مجموعات بناءً على معايير وتطبيق دوال عليها (مثل `sum`).

خريطة المفاهيم

```markmap

استكشاف البيانات

المجموعات والتجميع (Grouping and Aggregating)

وظيفة Groupby

#### الغرض: تقسيم البيانات إلى مجموعات لإجراء حسابات وتحليل أفضل

#### التجميع حسب عمود واحد

##### مثال: `df.groupby('المنطقة الإدارية').sum()`

#### التجميع حسب عمودين

##### الكود: `data.groupby(['المنطقة الإدارية', 'المرحلة'], as_index=False)['مجموع الطلبة'].sum()`

###### معلمة `as_index=False`

####### الغرض: جعل الفهرس هو رقم الصف بدلاً من أسماء الأعمدة

#### التجميع وتحديد أعمدة للجمع

##### الكود: `studentsTeachers.groupby('المنطقة الإدارية')[['مجموع الطلبة', 'مجموع المعلمين']].sum()`

```

نقاط مهمة

  • يمكن استخدام `groupby()` لتجميع البيانات حسب عمود واحد أو أكثر.
  • عند استخدام `as_index=False`، تكون نتيجة التجميع بإطار بيانات جديد يكون فهرسه أرقاماً متسلسلة.
  • يمكن تحديد الأعمدة المراد جمعها (`sum`) بعد عملية التجميع مباشرة.
  • مثال: تجميع الطلبة حسب المنطقة الإدارية والمرحلة الدراسية وحساب المجموع لكل مجموعة.

📋 المحتوى المنظم

📖 محتوى تعليمي مفصّل

مجموعة المنطقة الأولى

نوع: محتوى تعليمي

في هذا المثال، سنقوم بتجميع الطلبة وفقاً لمناطقهم، ومنطقتهم، ومرحلتهم الدراسية، ونحسب مجموع الطلبة في كل منطقة.

نوع: محتوى تعليمي

# Group by two columns, first group the table by Region and # then by level and for each group calculate the total NumOfStud data.groupby(['المنطقة الإدارية', 'المرحلة'], as_index=False)['مجموع الطلبة'].sum()

نوع: محتوى تعليمي

تم ضبط as_index=false ليكون الفهرس هو رقم الصف بدلاً من أسماء الأعمدة.

نوع: METADATA

65 rows × 3 columns

مجموعة المنطقة الأخيرة

نوع: محتوى تعليمي

وفي هذا المثال، سنقوم بإنشاء إطار بيانات جديد للمنطقة وعدد المعلمين، ثم نجمع حسب المنطقة ونحسب مجموع الطلبة ومجموع المعلمين في كل منطقة.

نوع: محتوى تعليمي

# Create a table with one column for Regions, one column for total #students and one for total #teachers studentsTeachers = data.loc[:, ['المنطقة الإدارية', 'مجموع الطلبة', 'مجموع المعلمين']] studentsTeachers = studentsTeachers.groupby('المنطقة الإدارية')[['مجموع الطلبة', 'مجموع المعلمين']].sum()

نوع: METADATA

الشكل 3.28: استخدام وظيفة (df.groupby) لتجميع إطار البيانات في أعمدة متعددة

نوع: METADATA

الشكل 3.29: استخدام وظيفة (df.groupby) وتحديد العمود المصنف كمؤشر للبيانات الجديدة

🔍 عناصر مرئية

📄 النص الكامل للصفحة

--- SECTION: مجموعة المنطقة الأولى --- في هذا المثال، سنقوم بتجميع الطلبة وفقاً لمناطقهم، ومنطقتهم، ومرحلتهم الدراسية، ونحسب مجموع الطلبة في كل منطقة. # Group by two columns, first group the table by Region and # then by level and for each group calculate the total NumOfStud data.groupby(['المنطقة الإدارية', 'المرحلة'], as_index=False)['مجموع الطلبة'].sum() تم ضبط as_index=false ليكون الفهرس هو رقم الصف بدلاً من أسماء الأعمدة. 65 rows × 3 columns --- SECTION: مجموعة المنطقة الأخيرة --- وفي هذا المثال، سنقوم بإنشاء إطار بيانات جديد للمنطقة وعدد المعلمين، ثم نجمع حسب المنطقة ونحسب مجموع الطلبة ومجموع المعلمين في كل منطقة. # Create a table with one column for Regions, one column for total #students and one for total #teachers studentsTeachers = data.loc[:, ['المنطقة الإدارية', 'مجموع الطلبة', 'مجموع المعلمين']] studentsTeachers = studentsTeachers.groupby('المنطقة الإدارية')[['مجموع الطلبة', 'مجموع المعلمين']].sum() الشكل 3.28: استخدام وظيفة (df.groupby) لتجميع إطار البيانات في أعمدة متعددة الشكل 3.29: استخدام وظيفة (df.groupby) وتحديد العمود المصنف كمؤشر للبيانات الجديدة --- VISUAL CONTEXT --- **TABLE**: Untitled Description: No description Table Structure: Headers: المنطقة الإدارية | مجموع الطلبة | مجموع المعلمين Rows: Row 1: الباحة | 11092 | 84464 Row 2: الجوف | 12503 | 151527 Row 3: الحدود الشمالية | 7156 | 88482 Row 4: الرياض | 114635 | 1473236 Row 5: الشرقية | 62982 | 909884 Row 6: القصيم | 29971 | 292996 Row 7: المدينة المنورة | 37617 | 443254 Row 8: تبوك | 16048 | 205573 Row 9: جازان | 26487 | 354608 Row 10: حائل | 17289 | 162909 Row 11: عسير | 46965 | 480060 Row 12: مكة المكرمة | 108309 | 1421176 Row 13: نجران | 10039 | 145397 Context: This table shows the total number of students and teachers grouped by administrative region.

🎴 بطاقات تعليمية للمراجعة

عدد البطاقات: 3 بطاقة لهذه الصفحة

ما الغرض الرئيسي من استخدام الدالة `groupby()` في مكتبة pandas عند تحليل البيانات؟

  • أ) فرز البيانات تصاعدياً أو تنازلياً بناءً على عمود واحد.
  • ب) تجميع البيانات في مجموعات بناءً على قيم عمود أو أكثر، ثم تطبيق دالة تجميعية (مثل sum, mean) على كل مجموعة.
  • ج) حذف الصفوف التي تحتوي على قيم مفقودة (NaN) من إطار البيانات.
  • د) دمج إطارين من البيانات أفقيًا بناءً على عمود مشترك.

الإجابة الصحيحة: b

الإجابة: تجميع البيانات في مجموعات بناءً على قيم عمود أو أكثر، ثم تطبيق دالة تجميعية (مثل sum, mean) على كل مجموعة.

الشرح: 1. الدالة `groupby()` تقسم إطار البيانات إلى مجموعات فرعية بناءً على قيم عمود محدد. 2. ثم تُطبق دالة تجميعية (مثل `sum()` أو `mean()`) على كل مجموعة. 3. النتيجة هي إطار بيانات جديد يلخص البيانات الأصلية حسب المجموعات.

تلميح: فكر في كيفية تنظيم البيانات المتشابهة معًا لاستخراج إحصاءات موجزة.

التصنيف: مفهوم جوهري | المستوى: متوسط

في الكود `data.groupby(['المنطقة الإدارية', 'المرحلة'], as_index=False)['مجموع الطلبة'].sum()`، ما تأثير المعلمة `as_index=False`؟

  • أ) تجاهل الصفوف التي تحتوي على قيم فارغة في أعمدة التجميع.
  • ب) تحديد عدد المجموعات القصوى المسموح بها في عملية التجميع.
  • ج) جعل الفهرس في إطار البيانات الناتج أرقامًا تسلسلية للصفوف بدلاً من استخدام أسماء الأعمدة التي تم التجميع عليها كمؤشر.
  • د) دمج جميع المجموعات في مجموعة واحدة نهائية.

الإجابة الصحيحة: c

الإجابة: جعل الفهرس في إطار البيانات الناتج أرقامًا تسلسلية للصفوف بدلاً من استخدام أسماء الأعمدة التي تم التجميع عليها كمؤشر.

الشرح: عند تعيين `as_index=False`، لا تُستخدم أعمدة التجميع (المنطقة الإدارية والمرحلة) كمؤشر (index) للصفوف في النتيجة. بدلاً من ذلك، تظهر كأعمدة عادية، ويُستخدم فهرس رقمي تسلسلي للصفوف.

تلميح: ما الذي يحدد تسمية الصفوف في الجدول الناتج؟

التصنيف: مفهوم جوهري | المستوى: متوسط

ما الفرق بين ناتج الكودين التاليين في تجميع البيانات حسب 'المنطقة الإدارية'؟ 1. `data.groupby('المنطقة الإدارية')['مجموع الطلبة'].sum()` 2. `data.groupby('المنطقة الإدارية', as_index=False)['مجموع الطلبة'].sum()`

  • أ) الكود (1) يحسب المتوسط بينما الكود (2) يحسب المجموع.
  • ب) الكود (1) يتعامل مع قيم نصية فقط بينما الكود (2) يتعامل مع قيم رقمية فقط.
  • ج) في الكود (1)، ستكون 'المنطقة الإدارية' هي المؤشر (index) للصفوف في الناتج. في الكود (2)، ستكون 'المنطقة الإدارية' عمودًا عاديًا في الناتج مع فهرس رقمي تسلسلي.
  • د) الكود (1) يقوم بالتجميع على عمود واحد بينما الكود (2) يقوم بالتجميع على عمودين.

الإجابة الصحيحة: c

الإجابة: في الكود (1)، ستكون 'المنطقة الإدارية' هي المؤشر (index) للصفوف في الناتج. في الكود (2)، ستكون 'المنطقة الإدارية' عمودًا عاديًا في الناتج مع فهرس رقمي تسلسلي.

الشرح: الفرق يكمن في هيكل إطار البيانات الناتج. الكود (1) بدون `as_index=False` ينتج سلسلة (Series) حيث تكون أسماء المناطق هي المؤشرات. الكود (2) مع `as_index=False` ينتج إطار بيانات (DataFrame) حيث تكون المناطق في عمود منفصل والفهرس أرقام تسلسلية.

تلميح: ركز على بنية الجدول الناتج وموقع عمود 'المنطقة الإدارية' فيه.

التصنيف: فرق بين مفهومين | المستوى: صعب