تجاوز إلى المحتوى الرئيسي
تطبيق TawjihiAIادرس وتدرّب من هاتفكحمّل التطبيق

جمع البيانات وتحليلها باستخدام برمجية بايثون

تحليل البيانات · المهارات الرقمية

آخر تحديث:

محتويات الدرس (١٣)

شرح الدرس

سأتعلّم في هذا الدرس كيف أستخدم مكتبات برمجية بايثون (Python) في جمع البيانات ضمن مجال مُعيّن، واستكشافها وتحليلها باستخدام الأدوات المناسبة. كذلك سأتعلّم كيفية تحديد الأنماط والاتّجاهات ووصفها عن طريق التمثيلات البيانية التي تُوفّرها برمجية بايثون (Python)، ثمّ توظيف هذه الأنماط في استخلاص استنتاجات دقيقة قائمة على البيانات.

جمع البيانات وتحليلها باستخدام برمجية بايثون

(Python Data Collection & Analyses Methods)

نتاجات التعلّم :

  • أُثبّت المكتبات الخارجية الخاصة بتحليل البيانات في برمجية بايثون، مثل: (panadas)، و(matplotlib).
  • أستورد ملفات البيانات (مثل: CSV)، و(Excel) إلى برمجية بايثون (Python) لتحليلها.
  • أُجري عمليات تحليلية على البيانات باستخدام مكتبة (pandas) في برمجية بايثون (Python).
  • أُفسّر نتائج التحليل الإحصائي الوصفي من شاشة مُخرجات برمجية بايثون (Python).
  • أعرض البيانات بطرائق مختلفة باستخدام مكتبة (matplotlib) في برمجية بايثون (Python).
  • أُحلّل الرسوم البيانية لاستكشاف الأنماط واستخلاص استنتاجات تدعم الفهم الأوّلي للبيانات.

    تُعدُّ عملية جمع البيانات خطوة مُهمَّة وركيزة أساسية في علم البيانات؛ إذ تُمثِّل المرحلة الأولى من مراحل اتخاذ القرارات المُستندة إلى البيانات. تتبع هذه المرحلة عملية تنظيم البيانات لتحويلها إلى شكل مُنظَّم ومُهيكل يتيح تحليلها بصورة مناسبة؛ ما يُسهم في استنباط النتائج والاستنتاجات الداعمة لاتخاذ قرارات دقيقة وفاعلة.

الشكل (3-1): بيانات عن أجهزة أبل آيفون (Apple iPhones)
الشكل (3-1): بيانات عن أجهزة أبل آيفون (Apple iPhones)

جمع البيانات وتحليلها

  1. تَعرَّفتُ في الدرس السابق وجود طرائق عدَّة لجمع البيانات، يُمكن تفريغها وتنظيمها باستخدام أدوات مُتعدِّدة.
  2. تُعدُّ الجداول إحدى أكثر الأدوات شيوعاً لتفريغ البيانات، ويُستخدم لذلك برمجيات مختلفة، مثل برمجية إكسل (Excel) التي تعمل على ترتيب البيانات بشكل مُنظَّم يُسهِّل التعامل معها وتحليلها.

أُلاحظ الشكل (3-1) الذي يتعلَّق ببيانات جُمعت عن أجهزة أبل آيفون (Apple iPhones) التي تُعدُّ من أكثر الهواتف الذكية مبيعاً في العالم، ثمَّ فُرِّغت هذه البيانات في ملف إكسل امتداده (CSV).

  1. تُعدُّ برمجية بايثون واحدة من أبرز الأدوات المُستخدمة في معالجة البيانات وتحليلها؛ إذ تُوفِّر العديد من المكتبات الجاهزة التي تُستخدم في تحليل البيانات وعرضها.
  2. وبالرغم من ذلك، فإنَّ هذه المكتبات ليست مُثبَّتة بشكل افتراضي مع الحزمة الأساسية للغة البرمجة بايثون، وإنَّما تُعدُّ مكتبات خارجية يتعيَّن تثبيتها بصورة مُنفصلة.
  3. أمَّا أهمُّ المكتبات المُستخدمة في تحليل البيانات وعرضها فهي: مكتبة (pandas)، ومكتبة (numpy)، ومكتبة (matplotlib).
Product NameProduct URLBrandSale PriceMrpDiscount PercentageNumber Of RatingsNumber Of ReviewsUpcStar RatingRam
APPLE iPhohttps://wwwApple499004990003431356MOBEXRGV4.6⁦2 GB⁩
APPLE iPhohttps://wwwApple849008490003431356MOBEXRGV4.6⁦2 GB⁩
APPLE iPhohttps://wwwApple849008490003431356MOBEXRGV4.6⁦2 GB⁩
APPLE iPhohttps://wwwApple7700077000011202794MOBEXRGV4.5⁦2 GB⁩
APPLE iPhohttps://wwwApple7700077000011202794MOBEXRGV4.5⁦2 GB⁩
APPLE iPhohttps://wwwApple499004990003431356MOBEXRGV4.6⁦2 GB⁩
APPLE iPhohttps://wwwApple499004990003431356MOBEXRGV4.6⁦2 GB⁩
APPLE iPhohttps://wwwApple7700077000011202794MOBEXRGV4.5⁦2 GB⁩
APPLE iPhohttps://wwwApple899008990001454149MOBF944E4.6⁦4 GB⁩
Apple iPhorhttps://wwwApple419995290020795126796MOBF9Z7Z4.6⁦4 GB⁩
Apple iPhorhttps://wwwApple399994790016795126796MOBF9Z7Z4.6⁦4 GB⁩
Apple iPhorhttps://wwwApple419995290020795826804MOBF9Z7Z4.6⁦4 GB⁩
Apple iPhorhttps://wwwApple419995290020795126796MOBF9Z7Z4.6⁦3 GB⁩
Apple iPhorhttps://wwwApple419995290020795126796MOBF9Z7Z4.6⁦4 GB⁩
APPLE iPhohttps://wwwApple⁦1E⁩+0513190001078101MOBFKCTS4.7⁦4 GB⁩
APPLE iPhohttps://wwwApple⁦1E⁩+0511710001078101MOBFKCTS4.7⁦4 GB⁩
APPLE iPhohttps://wwwApple⁦1E⁩+0513190001078101MOBFKCTS4.7⁦4 GB⁩
APPLE iPhohttps://wwwApple⁦1E⁩+0511710001078101MOBFKCTS4.7⁦4 GB⁩

استدعاء ملف بيانات في برمجية بايثون:

يُمكن تحليل ملف بيانات باستخدام برمجية بايثون بعد استدعاء البيانات إلى مُفسِّر لغة البرمجة بايثون. وقبل ذلك يتعيَّن استدعاء المكتبات اللازمة لمعالجة البيانات وتحليلها.

خطوات استدعاء ملف بيانات في برمجية بايثون:

  1. استدعاء مكتبة (pandas): تُستخدم مكتبة (pandas) في تحليل البيانات بعد استدعائها باستخدام الأمر:
الشكل (3-3): رسالة تفيد بحدوث خطأ في برمجية بايثون
الشكل (3-3): رسالة تفيد بحدوث خطأ في برمجية بايثون

``python import pandas ``

  1. قراءة الملف باستخدام الدالة read_csv: يُمكن قراءة ملف البيانات باستخدام الدالة ()read_csv من مكتبة (Pandas)، وذلك بكتابة الجملة العامة الآتية:

``python df = pandas.readcsv("C:\\Users\\user\\OneDrive\\Desktop\\appleproducts.csv") ``

حيث:

  • df: اسم المُتغيِّر الذي ستُخزَّن فيه البيانات المستدعاة.
  • ()pandas.read_csv: دالة قراءة الملف الذي امتداده (CSV).
  • المسار: المسار الكامل للملف، ويُكتب بين علامتي اقتباس مفردة أو مزدوجة، مع التحقُّق من استخدام رمز (Backslash) مزدوج علماً بأن هذا المسار يتغير بتغير الجهاز المستخدم.

إضاءة

إذا طُبع مسار الملف باستخدام إشارة (backslash) واحدة، فإنَّ رسالةً تُشعر بوجود خطأ ستظهر عند تنفيذ البرنامج كما في الشكل (3-3).

SyntaxErrorX
(unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape
OK

إثراء

يُمكن إظهار مسار الملف كاملاً باتباع الخطوتين الآتيتين:

  • أ. التوجُّه إلى موقع تخزين الملف في جهاز الحاسوب.
  • ب. الضغط بزرِّ الفأرة الأيمن على الملف، فتظهر القائمة الفرعية كما في الشكل (3-4)، ثمَّ اختيار الخيار (Copy as path) منها، ثمَّ عمل لصق على مُفسِّر لغة البرمجة بايثون، فيظهر مسار الملف كاملاً.
الشكل (3-4): قائمة الخيارات التي تظهر عند الضغط على الزرِّ الأيمن للملف
الشكل (3-4): قائمة الخيارات التي تظهر عند الضغط على الزرِّ الأيمن للملف
CutCopyRenameShareDelete
Open
Open with
Share
Add to Favorites
Compress to...
Copy as pathCtrl+Shift+C
PropertiesAlt+Enter
  1. طباعة البيانات: تُطبع البيانات على الشاشة باستخدام جملة الطباعة وبداخلها اسم المتغير الذي تم تخزين البيانات فيه. أنظر الشكل (3-5) الذي يُبيِّن تمثيل المقطع البرمجي كاملاً.
الشكل (3-5): مقطع برمجي لاستدعاء ملف بيانات وطباعته
الشكل (3-5): مقطع برمجي لاستدعاء ملف بيانات وطباعته

``python import pandas df = pandas.readcsv("C:\\Users\\user\\OneDrive\\Desktop\\appleproducts.csv") print(df) ``

بعد تنفيذ المقطع البرمجي سيكون ناتج التنفيذ كما هو مُبيَّن في الشكل (3-6).

الشكل (3-6): ناتج تنفيذ المقطع البرمجي لاستدعاء ملف وطباعته.
الشكل (3-6): ناتج تنفيذ المقطع البرمجي لاستدعاء ملف وطباعته.

``python Product Name ... Ram 0 APPLE iPhone 8 Plus (Gold, 64 GB) ... 2 GB 1 APPLE iPhone 8 Plus (Space Grey, 256 GB) ... 2 GB 2 APPLE iPhone 8 Plus (Silver, 256 GB) ... 2 GB 3 APPLE iPhone 8 (Silver, 256 GB) ... 2 GB 4 APPLE iPhone 8 (Gold, 256 GB) ... 2 GB ... ... ... 57 APPLE iPhone SE (Black, 64 GB) ... 4 GB 58 APPLE iPhone 11 (Purple, 64 GB) ... 4 GB 59 APPLE iPhone 11 (White, 64 GB) ... 4 GB 60 APPLE iPhone 11 (Black, 64 GB) ... 4 GB 61 APPLE iPhone 11 (Red, 64 GB) ... 4 GB [62 rows x 11 columns] ``

الشكل (3-6): ناتج تنفيذ المقطع البرمجي لاستدعاء ملف وطباعته. عند استخدام مكتبة (Pandas) في قراءة ملف البيانات (CSV)، وطباعة المحتوى باستخدام الأمر print(df)، يُسارع مُفسّر لغة البرمجة بايثون -افتراضيًا- إلى عرض أول خمسة أسطر وآخر خمسة أسطر فقط من الملف، وطباعة أول عمودين وآخر عمودين إذا كان عدد الأعمدة كثيرًا. وهذا السلوك الافتراضي يُسهّل معاينة البيانات من دون عرض الجدول كاملًا، وبخاصة إذا كان يحتوي على عدد كبير من الصفوف أو الأعمدة. وفي نهاية شاشة المُخرجات، يُطبع إجمالي عدد الصفوف والأعمدة في الجدول الأصلي.

نشاط جماعي

أدرس المقطع البرمجي الآتي، ثمَّ أُجيب - بالتعاون مع أفراد مجموعتي - عن الأسئلة التي تليه:

``python import pandas data = pandas.read_csv('C:\\Users\\user\\OneDrive\\Desktop\\apple_products.csv') print(data) ``

  • ما اسم الملف الذي تمَّ قراءته؟
  • ما الدالّة المسؤولة عن استدعاء الملف؟
  • ما اسم المكتبة التي تمَّ استيرادها؟

نشاط فردي

  • أفتح مُفسّر لغة البرمجة بايثون، ثمَّ أعمل على استيراد مكتبة (pandas)، وأتأكد أنني ثبّتها في جهاز الحاسوب بصورة صحيحة.
  • أستخدم الدالّة read_csv من مكتبة بايثون لقراءة الملف.
  • أطبع البيانات على شاشة المُخرجات، ثمَّ أُلاحظ النتيجة لقراءة الملف.

عرض ملف البيانات كاملًا

يُمكن عرض جميع الأسطر والأعمدة للبيانات التي قُرئت باستخدام مكتبة (pandas)، لكنَّ ذلك يتطلب أولًا تغيير الإعدادات الافتراضية باستخدام الدالّة set_option كما هو موضح في المقطع البرمجي الذي يمثله الشكل (3-7).

الشكل (3-7): مقطع برمجي لتغيير الإعدادات الافتراضية لمكتبة (pandas).
الشكل (3-7): مقطع برمجي لتغيير الإعدادات الافتراضية لمكتبة (pandas).
الشكل (3-8): ناتج تنفيذ المقطع البرمجي بعد تغيير الإعدادات.
الشكل (3-8): ناتج تنفيذ المقطع البرمجي بعد تغيير الإعدادات.

``python import pandas pandas.set_option('display.max_rows', None) pandas.set_option('display.max_columns', None) df=pandas.read_csv('C:\\Users\\user\\OneDrive\\Desktop\\testdoc.csv') print(df) ``

الشكل (3-7): مقطع برمجي لتغيير الإعدادات الافتراضية لمكتبة (pandas). ما إن يتمَّ تشغيل المقطع البرمجي، حتى تظهر جميع الأسطر والأعمدة من ملف testdoc.csv على شاشة النتائج؛ ما يُسهّل قراءة جميع البيانات وتحليلها. أنظر الشكل (3-8).

إضاءة

تُعدّ الدالّة ()info في مكتبة (Pandas) أداة أساسية للحصول على مُلخص شامل عن البيانات، وهي تساعد على تحليل البيانات تحليلاً دقيقًا عن طريق عرض أسماء الأعمدة الموجودة في الجدول، وأنواع البيانات لكل عمود، وعدد القيم غير المفقودة في كل عمود؛ ما يُسهّل تعرّف الأعمدة التي تحتوي على بيانات مفقودة أو أنواع مختلفة من البيانات. تحليل الإحصاء الوصفية (Descriptive Statistics) في برمجة بايثون: تُستخدم الإحصاء الوصفية في برمجة بايثون لتلخيص خصائص مجموعة البيانات ووصفها؛ ما يساعد على فهم البيانات وتحليلها بفاعلية. تُصنَّف الإحصاء الوصفية في برمجة بايثون إلى ثلاث فئات رئيسة، هي:

  1. مقاييس النزعة المركزية: تُعبّر هذه الفئة عن النقطة التي تتركّز حولها القِيَم، وهي تضمُّ الوسط الحسابي، والوسيط، والمنوال.
  2. مقاييس التشتُّت: تُعبّر هذه الفئة عن مدى انتشار القِيَم حول المُتوسّط، وهي تضمُّ الانحراف المعياري، والتباين.
  3. التكرارات: يستفاد من التكرارات في قياس عدد مرّات تكرار كل قيمة في مجموعة البيانات؛ ما يساعد على تحديد أكثر القِيَم شيوعًا.

    يُمكن تعريض البيانات لتحليل الإحصاءات الوصفية باستخدام الدالّة ()describe في جملة الطباعة على النحو الآتي: print(df.describe( )) حيث: df: اسم المُتغيّر الذي خُزّنت فيه البيانات. ()describe: الدالّة التي تعمل على حساب الإحصاءات الوصفية للبيانات. فيكون المقطع البرمجي الناتج كما في الشكل (3-9).

الشكل (3-9): المقطع البرمجي للدالة describe.
الشكل (3-9): المقطع البرمجي للدالة describe.
الشكل (3-10): ناتج تنفيذ المقطع البرمجي في الشكل (3-9)
الشكل (3-10): ناتج تنفيذ المقطع البرمجي في الشكل (3-9)

``python import pandas pandas.set_option('display.max_rows', None) pandas.set_option('display.max_columns', None) df = pandas.read_csv('C:\\Users\\Hedaia\\Desktop\\apple_products.csv') print(df.describe()) ``

الشكل (3-9): المقطع البرمجي للدالّة describe. بعد الانتهاء من التنفيذ، تظهر الإحصاءات الوصفية الآتية:

نلاحظ من النتائج السابقة ما يأتي:

  • اقتصار الإحصاءات الوصفية فقط على الأعمدة الرقمية، وهي تُمثّل في المثال السابق كلًا من: Sale Price، وMrp، وDiscount Percentage، وNumber of Ratings، وNumber of Reviews، وStar Rating.
  • الصف الأوّل يُظهر التكرار (Count) الذي يُمثّل عدد القِيَم في كل عمود. فمثلاً، جميع الأعمدة تحتوي على (62) قيمة، وهو مساوٍ لعدد الأسطر نفسها.
  • الصف الثاني يُظهر الوسط الحسابي (Mean) لكل عمود. فمثلاً، الوسط الحسابي لعمود (Sale Price) هو: (80073.887097).
  • الصف الثالث يُظهر الانحراف المعياري (std: Standard Deviation) الذي يقيس مدى تشتُّت القِيَم حول الوسط الحسابي. فمثلاً، الانحراف المعياري لعمود (Number Of Reviews) هو: (2855.883830).
  • الصف الرابع يُظهر القيمة الصغرى (min)، وهي أقلُّ قيمة لكل عمود. فمثلاً، أقل قيمة لعمود (Star Rating) هي (4.500000).
  • الصف الخامس يُظهر المئين 25 (25%)، ويُمثّل الربيع الأوّل، وهو القيمة التي تفصل أوّل 25% من البيانات عن البقية.
  • الصف السادس يُظهر المئين 50 (50%)، ويُعرف بالربيع الثاني أو الوسيط، وهو القيمة الوسطى للبيانات.
  • الصف السابع يُظهر المئين 75 (75%)، ويُمثّل الربيع الثالث، وهو القيمة التي تفصل 75% من البيانات.
  • الصف الثامن يُظهر القيمة العظمى (max)، وهو أكبر قيمة لكل عمود.

نشاط جماعي

أتأمل الشكل (3-11) الذي يُبيّن ناتج تحليل ملف بيانات للطلبة باستخدام برمجة بايثون للإحصاءات الوصفية، ثمَّ أجيب - بالتعاون مع أفراد مجموعتي - عن الأسئلة التي تليه:

الشكل (3-11): ناتج تحليل بيانات الطلبة باستخدام الإحصاءات الوصفية.
الشكل (3-11): ناتج تحليل بيانات الطلبة باستخدام الإحصاءات الوصفية.
  • أستخرج من الجدول ما يأتي:
  • عدد الطلبة في الملف.
  • أقلُّ مُعدّل وأعلى مُعدّل في الصف.
  • الوسط الحسابي للعمود garde2.
  • الانحراف المعياري للعمود grade3.
  • الوسيط للعمود garde2.
  • الربيع الثالث للعمود grade1.

نشاط فردي

  • أفتح مُفسّر لغة البرمجة بايثون، ثمَّ أعمل على استيراد مكتبة (pandas).
  • أستخدم الدالّة read_csv لقراءة الملف من مكتبة بايثون.
  • أُنفّذ الإحصاءات الوصفية لملف بياناتي الذي استدعيته، ثمَّ أطبعها على شاشة المُخرجات.
  • أُفسّر النتائج التي ظهرت على الشاشة.

إضاءة

اسم ملفات البيانات (CSV) هو اختصار للاسم الكامل (Comma Separated Values) الذي يعني القِيَم المفصولة بفواصل. تُستخدَم هذه الصيغة في تخزين البيانات على هيئة جدول، حيث تُفصل القِيَم داخل الصف الواحد باستخدام الفواصل (،). وللتحقق من ذلك، يجب أن يحتوي اسم الملف على الامتداد (.csv). أما إذا كان الملف محفوظًا بصيغة أخرى (مثل Excel.xlsx)، فيجب تحويله إلى صيغة (CSV) قبل استدعائه في برمجة بايثون. وفي هذا السياق، يُمكن تحويل ملف إكسل (Excel) إلى صيغة (CSV) عن طريق فتح الملف في برمجة إكسل (Excel)، ثمَّ الضغط على خيار حفظ باسم (Save As)، ثمَّ اختيار صيغة (CSV).

عرض البيانات باستخدام بايثون

يوجد العديد من المكتبات الخارجية التي تُستخدَم في برمجة بايثون لعرض البيانات، وتُعدّ مكتبة (matplotlib) من أكثرها شيوعًا؛ إذ تتيح هذه المكتبة إنشاء مُخطّطات بيانية مُتنوّعة (مثل: المُخطّطات الخطيّة، ومُخطّطات التشتُّت)؛ ما يساعد على فهم البيانات وعرضها بطرائق واضحة. كذلك تحتوي هذه المكتبة على العديد من الدوال التي تُسهّل على المُبرمجين تنسيق المُخطّطات البيانية المختلفة. أنظر الجدول (3-1) الذي يُبيّن أهمَّ الدوال الشائعة في مكتبة (matplotlib)، التي تُستخدَم بشكل مُتكرّر في تنسيق المُخطّطات البيانية وإنشائها. الجدول (3-1): أمثلة على الدوال الشائعة في مكتبة (Matplotlib).

الدالّةالوظيفة
plot()إنشاء رسم بياني خَطّي.
bar()رسم مُخطّط بياني على شكل أعمدة.
show()إظهار الرسم البياني على شاشة المُخرجات.
title()إظهار عنوان للرسم البياني.
xlabel()إظهار عنوان المحور السيني على المُخطّط البياني.
ylabel()إظهار عنوان المحور الصادي على المُخطّط البياني.
legend()إظهار مفتاح الرسم البياني.
Pieرسم المُخطّط البياني على شكل دائري.

عرض البيانات برسم بياني خَطّي

أدرس المقطع البرمجي الذي يُبيّنه الشكل (3-12)، والذي يهدف إلى رسم مُخطّط بياني يعرض اسم الطالب ومُعدّله في صورة رسم بياني.

الشكل (3-12): مقطع برمجي لرسم مخطط بياني.
الشكل (3-12): مقطع برمجي لرسم مخطط بياني.

``python import pandas import matplotlib.pyplot as plt data = pandas.read_csv('C:\\Users\\user\\OneDrive\\Desktop\\testdoc.csv') plt.title('average of class') plt.xlabel('Names') plt.ylabel('Average') plt.plot(data['name'], data['average']) plt.show() ``

الشكل (3-12): مقطع برمجي لرسم مُخطّط بياني. في ما يأتي الخطوات الواجب اتباعها لإنشاء رسم بياني خَطّي:

  1. استدعاء المكتبات الخارجية: تُستدعى المكتبات الخارجية باستخدام الأمر (import)؛ إذ يتمَّ به استدعاء مكتبة (Pandas) المسؤولة عن تحليل البيانات، ومكتبة (Matplotlib) المسؤولة عن عرض البيانات. وبعد استدعاء مكتبة (Matplotlib)، يبدأ استخدام وحدة (pyplot)، وهي وحدة فرعية من المكتبة تساعد على رسم المُخطّطات البيانية في برمجة بايثون.

إضاءة

لتجنّب كتابة اسم المكتبة الطويل في التعليمات البرمجية، فقد اختصرنا اسم مكتبة (matplotlib) ليصبح (plt)، وذلك باستخدام كلمة (as). وهذا يعني أننا سنستخدم الاختصار (plt) بدلًا من كتابة اسم المكتبة كاملًا في كل أمر؛ ما يُوفّر الوقت، ويُبسّط كتابة الكود.

  1. إضافة عنوان إلى المُخطّط البياني: يُمكن إظهار عنوان للمُخطّط على شاشة المُخرجات باستخدام الدالّة title من مكتبة (Matplotlib) إذ تعمل هذه الدالّة على تحديد العنوان الذي سيظهر أعلى المُخطّط البياني. ومن ثمَّ يُكتب الأمر البرمجي على النحو الآتي:

``python plt.title('average of class') ``

  1. إضافة عناوين إلى المحاور في المُخطّط البياني: تُستخدَم الدالّة xlabel في إظهار عنوان للمحور السيني (X-axis) على المُخطّط البياني، في حين تُستخدَم الدالّة ylabel في إظهار عنوان للمحور الصادي (Y-axis) على المُخطّط نفسه. ومن ثمَّ يُكتب الأمر البرمجي لإضافة العناوين مع ملاحظة أنه يجب وضع عناوين المحاور بين إشارتي اقتباس على النحو الآتي:

``python plt.xlabel('Names') plt.ylabel('Average') ``

  1. رسم المُخطّط البياني الخَطّي باستخدام الدالّة plot: لرسم مُخطّط بياني خَطّي، تُستخدَم الدالّة plot من الوحدة (matplotlib.pyplot) التي اختصرناها بـ (plt).

    تأخذ الدالّة plot مُعاملين أساسيين، هما: المُعامل (X-axis): يُمثّل هذا المُعامل القِيَم على المحور الأفقي (السيني). وفي هذا المثال، فإنّه يُعدّ المُتغيّر في عمود (Names). المُعامل (Y-axis): يُمثّل هذا المُعامل القِيَم على المحور العمودي (الصادي). وفي هذا المثال، فإنّه يُعدّ المُتغيّر في عمود (Average). تُكتب أسماء الأعمدة (المُتغيّرات) التي سيتمُّ رسمها باستخدام الدالّة plot، وذلك بوضع اسم العمود بين قوسين مُربّعين [ ] بعد اسم المُتغيّر الذي يحتوي على البيانات، وهو في هذا المثال (data). ومن ثمَّ يُكتب الأمر البرمجي لرسم المُخطّط البياني على النحو الآتي:

الشكل (3-13): مثال على عرض البيانات في هيئة رسم بياني خَطّي باستخدام مكتبة (Matplotlib) في برمجة بايثون.
الشكل (3-13): مثال على عرض البيانات في هيئة رسم بياني خَطّي باستخدام مكتبة (Matplotlib) في برمجة بايثون.

``python plt.plot(data['name'], data['average']) ``

  1. إظهار الرسم البياني على شاشة المُخرجات: يتمُّ إظهار الرسم البياني على شاشة المُخرجات باستخدام الدالّة ()show من مكتبة (matplotlib.pyplot)؛ إذ تعمل هذه الدالّة على عرض الرسم البياني الذي أُنشئ باستخدام التعليمات السابقة.

    عند تنفيذ هذه الدالّة، سيظهر الرسم البياني الناتج بناءً على التعليمات التي كُتبت مُسبقًا (مثل: إضافة العنوان، وأسماء المحاور، ورسم البيانات). أنظر الشكل (3-13).

بعد أن أتأمل الرسم البياني وأحلّله، أُلاحظ أنَّ الطالبة Jana حصلت على أدنى مُعدّل في الصف، وأنَّ الطالبة Diana حصلت على أعلى مُعدّل في الصف، وأنّه يُمكن استخدام الرسم البياني في المقارنة بين مُعدّلات الطلبة، مثل المقارنة بين مُعدّلي طالبين/ طالبتين لمعرفة الفَرْق بينهما بسهولة. كذلك يُمكن المقارنة بين علامتين لنفس الطالب/ الطالبة لتعرّف مدى التحسّن أو التأخّر في التحصيل الدراسي، وذلك برسم خَطّين بيانيين على نفس الرسم باستخدام أكثر من أمر (plot). أنظر الشكل (3-14).

الشكل (3-14): مقطع برمجي للمقارنة بين البيانات باستخدام الأمر (plot).
الشكل (3-14): مقطع برمجي للمقارنة بين البيانات باستخدام الأمر (plot).
الشكل (3-15): ناتج تنفيذ المقطع البرمجي في الشكل (3-14).
الشكل (3-15): ناتج تنفيذ المقطع البرمجي في الشكل (3-14).

``python import pandas import matplotlib.pyplot as plt data = pandas.read_csv('C:\\Users\\user\\OneDrive\\Desktop\\testdoc.csv') plt.title('average of Class') plt.xlabel('Names') plt.ylabel('Average') plt.plot(data['name'], data['grade1']) plt.plot(data['name'], data['grade2']) plt.legend(['grade1','grade2']) plt.show() ``

الشكل (3-14): مقطع برمجي للمقارنة بين البيانات باستخدام الأمر (plot). أُلاحظ في الأمر قبل الأخير استخدام الدالّة legend التي تُظهر مفتاحًا للرسم البياني، ويظهر مفتاح الرسم على هيئة مُربّع يقع في الزاوية اليمنى من الرسم على شاشة المُخرجات، ويحتوي على ألوان الخطوط وما يرمز إليه كل خَطّ منها. بعد الانتهاء من تنفيذ المقطع البرمجي السابق في مُفسّر لغة البرمجة بايثون، فإنَّ ناتج التنفيذ سيكون على النحو الظاهر في الشكل (3-15).

عرض البيانات على هيئة رسم بياني بالأعمدة (Bar Chart): عند التعامل مع بيانات تتطلّب المقارنة بين القِيَم من خلال فئات أو مجموعات، فإنَّ الرسم البياني بالأعمدة (Bar Chart) يُعدُّ الأنسب لهذا الغرض. يُمكن إنشاء رسم بياني من هذا النوع باستخدام مكتبة (Matplotlib) في برمجة بايثون، وذلك باعتماد الدالّة bar بدلًا من الدالّة plot، فيصبح البرنامج على النحو الظاهر في الشكل (3-16).

الشكل (3-16): مقطع برمجي لعرض البيانات على هيئة رسم بياني بالأعمدة (bar) باستخدام مكتبة (matplotlib).
الشكل (3-16): مقطع برمجي لعرض البيانات على هيئة رسم بياني بالأعمدة (bar) باستخدام مكتبة (matplotlib).

``python import pandas import matplotlib.pyplot as plt data = pandas read_csv('C:\\Users\\user\\OneDrive\\Desktop\\testdoc.csv') plt.title('average of Class') plt.xlabel('Names') plt.ylabel('Average') plt.bar(data['name'], data['average']) plt.show() ``

الشكل (3-17): ناتج تنفيذ المقطع البرمجي في الشكل (3-16).
الشكل (3-17): ناتج تنفيذ المقطع البرمجي في الشكل (3-16).

بعد الانتهاء من تنفيذ المقطع البرمجي السابق في مُفسّر لغة البرمجة بايثون، فإنَّ ناتج التنفيذ سيكون على النحو الظاهر في الشكل (3-17).

كذلك يُمكن التحكم في لون الأعمدة وعرضها باستخدام الوسيط (color) والوسيط (width) في الدالة bar، فيكون لون الأعمدة الافتراضي أزرق، وعرض الأعمدة الافتراضي (0.8). وإذا أردنا تخصيص اللون والعرض، فإنَّه يُمكننا كتابة الأوامر على النحو الآتي: plt.bar(data['name'], data['average'], color='red', width=0.5) يعمل الأمر على رسم مُخطّط بياني في صورة أعمدة، ويُحدّد عنوان محور السينات باسم (Names)، ويُحدّد عنوان محور الصادات باسم (Average)، ثمَّ يُخصّص لون الأعمدة ليكون بالأحمر (color='red')، ويُضبط عرض الأعمدة بقيمة (width=0.5). أنظر الشكل (3-18).

الشكل (3-18): مقطع برمجي لتمثيل البيانات باستخدام الرسم البياني بالأعمدة (Bar Chart) من مكتبة (Matplotlib)، والتحكم في لون الأعمدة وعرضها.
الشكل (3-18): مقطع برمجي لتمثيل البيانات باستخدام الرسم البياني بالأعمدة (Bar Chart) من مكتبة (Matplotlib)، والتحكم في لون الأعمدة وعرضها.
الشكل (3-19): ناتج تنفيذ المقطع البرمجي في الشكل (3-18).
الشكل (3-19): ناتج تنفيذ المقطع البرمجي في الشكل (3-18).

``python import pandas import matplotlib.pyplot as plt data = pandas read_csv('C:\\Users\\user\\OneDrive\\Desktop\\testdoc.csv') plt.title('average of Class') plt.xlabel('Names') plt.ylabel('Average') plt.bar(data['name'], data['average'], color='red', width=0.5) plt.show() ``

الشكل (3-18): مقطع برمجي لتمثيل البيانات باستخدام الرسم البياني بالأعمدة (Bar chart) من مكتبة (Matplotlib)، والتحكّم في لون الأعمدة وعرضها.

بعد الانتهاء من تنفيذ المقطع البرمجي السابق في مُفسّر لغة البرمجة بايثون، فإنَّ ناتج التنفيذ سيكون على النحو الظاهر في الشكل (3-19).

عرض البيانات على شكل قطاع دائري :

يُعدّ مُخطّط القطاع الدائري أداة فاعلة لعرض البيانات في صورة أجزاء من الكل؛ إذ يُستخدم في تمثيل النسب المئوية لكل مُتغيّر بسهولة؛ ما يتيح للمُستخدم المقارنة بين المُكوّنات المختلفة ضمن مجموعة البيانات. يمتاز القطاع الدائري بقدرته على إظهار النسبة المئوية لكل عنصر مقارنةً بالإجمالي؛ ما يُسهّل على المُستخدم فهم كيف يُسهم كل عنصر ضمن المجموعة الكاملة. تُستخدم الدالة pie من مكتبة (matplotlib) في عرض البيانات على هيئة قطاع دائري، وتتطلّب الدالة إدخال قائمة أو سلسلة من القيم التي تُمثّل نسباً مئويةً من إجمالي (100).

خطوات عرض البيانات على هيئة قطاع دائري (Pie chart) في برمجة بايثون:

  1. استدعاء المكتبات: يتمثل ذلك في استدعاء مكتبة (matplotlib.pyplot) للوظائف الخاصة بالرسوم، ومكتبة (numpy) لإنشاء مصفوفة تحتوي على النسب المئوية.

``python import matplotlib.pyplot as plt import numpy as np ``

  1. تعريف البيانات: يكون ذلك بإضافة مصفوفة تحتوي على القِيَم المئوية لكل قسم وقائمة تضمُّ أسماء الأقسام.

y = np.array([35, 25, 25, 15]) mylabels = ["Apples", "Bananas", "Cherries", "Dates"]

  1. إنشاء القطاع الدائري: يُمكن إنشاء القطاع الدائري باستخدام القِيَم الموجودة في y والأسماء الموجودة في (mylabels).

plt.pie(y, labels=mylabels)

حيث أن كلمة labels هي جزء ثابت من تركيب الدالة pie وليست اسم متغير، ولا يجوز استبدالها بأي كلمة أو اسم آخر.

  1. عرض القطاع الدائري وإظهاره على الشاشة في برمجة بايثون.

``python plt.show() ``

أنظر الشكل (3-20) الذي يُبيّن المقطع البرمجي كاملًا، ويُظهر التمثيل البياني في صورة قطاع دائري (Pie chart) ضمن برمجية بايثون.

الشكل (3-20): مقطع برمجي لتمثيل البيانات باستخدام الرسم البياني بالقطاع الدائري (Pie Chart) في مكتبة (Matplotlib).
الشكل (3-20): مقطع برمجي لتمثيل البيانات باستخدام الرسم البياني بالقطاع الدائري (Pie Chart) في مكتبة (Matplotlib).
الشكل (3-21): ناتج تنفيذ المقطع البرمجي في الشكل (3-20).
الشكل (3-21): ناتج تنفيذ المقطع البرمجي في الشكل (3-20).

``python import matplotlib.pyplot as plt import numpy as np y = np.array([35, 25, 25, 15]) mylabels = ["Apples", "Bananas", "Cherries", "Dates"] plt.pie(y, labels=mylabels) plt.show() ``

الشكل (3-20): مقطع برمجي لتمثيل البيانات باستخدام الرسم البياني بالقطاع الدائري (Pie chart) في مكتبة (Matplotlib).

بعد الانتهاء من تنفيذ المقطع البرمجي السابق في مُفسّر لغة البرمجة بايثون، فإنَّ ناتج التنفيذ سيكون على النحو الظاهر في الشكل (3-21).

أفتح مُفسّر لغة البرمجة بايثون، ثمَّ أستدعي من مكتبة (pandas) ملف بيانات الطلبة الذي أنشأته في الدرس السابق بعد حفظه بصيغة (CSV)، ثمَّ أنفّذ ما يأتي:

  1. أستعين بمكتبة (matplotlib) لرسم مُخطّط بياني خَطّي يُوَضّح العلاقة بين مُتغيّرين من المُتغيّرات التي لديّ، وأتأكّد أنَّ نوع البيانات مناسب للتمثيل البياني الذي أشتغل به، ثمَّ أضيف عنواناً إلى المُخطّط البياني يدلُّ على محتواه. بعد ذلك أُسمّي محور السينات، ثمَّ محور الصادات.
  2. أرسم مُخطّطاً بيانياً آخر على هيئة أعمدة، وأختار اللون الأصفر ليكون هو لون الأعمدة، ثمَّ أحدّد عرض الأعمدة بـ(0.6).
  3. أختار مُتغيّراً مناسباً، ثمَّ أعمل على رسم تمثيل بالقطاع الدائري، وذلك باستخدام مكتبة (matplotlib)، ثمَّ أضيف أسماء واضحة لكل جزء في القطاع، وأظهر النسب المئوية لكل جزء، وأضيف كذلك عنواناً يُوَضّح محتوى القطاع الدائري.

    بعد ذلك أتحقّق من عرض المُخطّطات الثلاثة بطريقة واضحة ومُنظّمة، وأتأكّد أنَّ لكل مُخطّط مفتاحاً يُوَضّح ما يمثله.

مثال: تحليل الرسم البياني الخَطّي

أتأمّل الشكل (3-22) الذي يُمثّل الرسم البياني الخَطّي الذي أُنشئ باستخدام برمجية بايثون لتمثيل بيانات عن مجموع محصول التفاح والبرتقال في بلدةٍ ما خلال الأعوام (2000-2010م). أُلاحظ من الرسم البياني أنَّ الخَطَّ الأزرق يُمثّل مجموع إنتاج التفاح في البلدة على مدار تلك الأعوام، وأنَّ اتجاه البيانات موجب؛ ما يعني أنَّ إنتاج التفاح قد شهد زيادة تدريجية أثناء تلك الأعوام. أمّا الخَطُّ البرتقالي فيُمثّل مجموع إنتاج البرتقال خلال المُدّة الزمنية نفسها. كذلك أُلاحظ أنَّ اتجاه البيانات سالب؛ ما يعني أنَّ إنتاج البرتقال انخفض تدريجياً بمرور الوقت. ومن ثمَّ أستنتج أنَّ الرسم البياني يشير إلى حدوث تغيرات واضحة في إنتاج المحاصيل في البلدة؛ إذ شهد إنتاج التفاح زيادة مستمرة، في حين انخفض إنتاج البرتقال بصورة تدريجية. إنَّ هذه الاتجاهات قد تقودنا إلى البحث في الأسباب التي أفضت إلى تلك النتائج بهدف اتخاذ قرارات مناسبة.

الشكل (3-22): التمثيل البياني الخَطّي لمجموع محصول التفاح ومحصول البرتقال في بلدة ما خلال الأعوام (2000-2010م).

الشكل (3-22): التمثيل البياني الخَطّي لمجموع محصول التفاح ومحصول البرتقال في بلدة ما خلال الأعوام (2000-2010م).
الشكل (3-22): التمثيل البياني الخَطّي لمجموع محصول التفاح ومحصول البرتقال في بلدة ما خلال الأعوام (2000-2010م).

المواطنة الرقمية:

  • جمع البيانات بشكل أخلاقي: أتجنَّب جمع البيانات من دون أخذ إذن المُستخدِمين. كذلك أستخدم مصادر مفتوحة للبيانات عند تحليل البيانات العامة، وأُوَضّح الأهداف والغايات عند جمع البيانات.
  • الأمان السيبراني وحماية البيانات: أستخدم التشفير عند تخزين البيانات الحسّاسة ونقلها، وأتجنَّب مشاركة البيانات مع أطراف ثالثة من دون إذن، وأعمل على تأمين الملفات والقواعد باستخدام المكتبات، مثل مكتبة (cryptography).

أقَيّم تعلّمي

المعرفة: أستخدم ما تعلَّمته من معارف في هذا الدرس للإجابة عن الأسئلة الآتية: السؤال الأوّل: أكتب التعليمات البرمجية المسؤولة عن كلّ ممّا يأتي في لغة البرمجة بايثون:

  • تثبيت المكتبة الخارجية (pandas).
  • إجراء الإحصاءات الوصفية لملف بيانات يحمل اسم (data.csv).
  • عرض البيانات على هيئة مُخطّط بياني خَطّي.

السؤال الثاني: أدرس الجملة البرمجية الآتية، ثمَّ أُجيب عن الأسئلة التي تليها: plt.bar(data['name'], data ['average'], color = 'red', width = 0.5)

  1. ما المكتبة الخارجية التي يجب استدعاؤها؟ أكتب التعليمة البرمجية المسؤولة عن ذلك.
  2. ما هدف هذه التعليمة؟
  3. ما الهدف من الدالّة color؟
  4. إذا غُيِّرت قيمة (width) من 0.5 إلى 0.9، فما التغيير المُتوقَّع في الرسم البياني؟
  5. ما اسم ملف البيانات؟
  6. ما عنوان المحور السيني؟ وما عنوان المحور الصادي؟

السؤال الثالث: أُحدّد وظيفة كلّ دالّة من الدوال الآتية:

اسم الدالّة (Function Name)الوظيفة
title
legend
show
import
set_option
info

السؤال الرابع: أختار رمز الإجابة الصحيحة في كلّ ممّا يأتي:

  1. المكتبة التي تُستخدم في تحليل البيانات في برمجية بايثون هي:
  • أ. مكتبة (numpy).
  • ب. مكتبة (matplotlib).
  • ج. مكتبة (pandas).
  • د. مكتبة (scipy).
  1. الدالّة التي تُستخدم في قراءة ملفات (CSV) في مكتبة (pandas) هي:
  • أ. read_excel
  • ب. read_csv
  • ج. read_data
  • د. read_file
  1. يظهر الرسم البياني على شاشة المُخرجات باستخدام الدالّة:
  • أ. plot ()
  • ب. show ()
  • ج. display ()
  • د. describe ()
  1. الدالّة التي تُستخدم في إضافة عنوان إلى المُخطّط البياني في مكتبة (Matplotlib) هي:
  • أ. title ()
  • ب. xlabel ()
  • ج. ylabel ()
  • د. legend ()
  1. يظهر مفتاح الرسم البياني في مكتبة (matplotlib) باستخدام الدالّة:
  • أ. title ()
  • ب. xlabel ()
  • ج. ylabel ()
  • د. legend ()

    السؤال الخامس: أميّز العبارات الصحيحة من العبارات غير الصحيحة في ما يأتي: ○ تُستخدم الدالّة (describe) في حساب الإحصاءات الوصفية للبيانات في مكتبة (pandas). ○ يُمكن استخدام مكتبة (matplotlib) في رسم المُخطّطات البيانية الخطّية فقط. ○ الدالّة (xlabel) تُستخدم في إضافة عنوان إلى المحور السيني في المُخطّط البياني. ○ الدالّة (read_excel) تُستخدم في قراءة ملفات (Excel) في مكتبة (pandas). ○ الدالّة (bar) تُستخدم في رسم المُخطّط البياني بالأعمدة في مكتبة (matplotlib).

المهارات: أُوظّف مهارات التفكير الناقد والبحث الرقمي والتواصل في الإجابة عن السؤالين الآتيين: السؤال الأوّل: أدرس المقطع البرمجي الآتي، ثمّ أجيب عن الأسئلة التي تليه:

○ ما اسم المكتبات الخارجية التي تمّ استيرادها في المقطع البرمجي؟ وما هدفها؟ ○ كيف استدعي ملف البيانات؟ ○ ما هدف الدالّة (show) في الجملة الأخيرة؟ ○ إذا أردتُ تغيير عنوان الرسم البياني إلى 'average of grades'، فما التعديل الذي سأجريه على المقطع البرمجي؟ ○ ما شكل الرسم البياني الذي سيظهر على شاشة المُخرجات؟

السؤال الثاني: لديّ بيانات موجودة في ملف "students.csv". اعتمادًا على هذه البيانات: ○ أكتب الكود البرمجي الصحيح لاستدعاء الملف في برمجية بايثون باستخدام مكتبة (pandas). ○ أكتب الكود البرمجي الصحيح لعرض جميع الأسطر والأعمدة الخاصة بالبيانات التي تمّ قراءتها باستخدام مكتبة (pandas). ○ أكتب الكود البرمجي الصحيح لتحليل الإحصاءات الوصفية للبيانات. ○ أكتب الكود البرمجي الصحيح لرسم مُخطّط بياني خطّي وإظهاره في برمجية بايثون، ثمّ أُضيف عنوانًا للتمثيل وعناوين للمحاور ومفتاحًا للتمثيل.

تعريفات أساسية

مقاييس النزعة المركزية

تُعبّر هذه الفئة عن النقطة التي تتركّز حولها القِيَم، وهي تضمُّ الوسط الحسابي، والوسيط، والمنوال.

مقاييس التشتت

تُعبّر هذه الفئة عن مدى انتشار القِيَم حول المُتوسّط، وهي تضمُّ الانحراف المعياري، والتباين.

ملفات البيانات (CSV)

اسم ملفات البيانات (CSV) هو اختصار للاسم الكامل (Comma Separated Values) الذي يعني القِيَم المفصولة بفواصل. تُستخدَم هذه الصيغة في تخزين البيانات على هيئة جدول، حيث تُفصل القِيَم داخل الصف الواحد باستخدام الفواصل (،).

معاينة موضوع «جمع البيانات وتحليلها باستخدام برمجية بايثون» من وحدة «تحليل البيانات» في مادة المهارات الرقمية. أقسام الشرح: ١٣، التعريفات: ٣.

المصدر: المركز الوطني لتطوير المناهج، جمع البيانات وتحليلها باستخدام برمجية بايثون (ص ١٢١–١٤٢)

موضوعات أخرى في الوحدة

تابع الدراسة