سعيد شعبان
سعيد شعبان

@Saeed_SH23

30 تغريدة 173 قراءة Jun 19, 2022
كيف يتم استدعاء االبيانات من مصادرها المختلفة ؟
ما هي ملفات CSV وكيف تستخدم ؟
ما هي ملفات JSON وكيف يتم استدعاؤها ؟
كيف يتم استدعاء البيانات من داخل قواعد
البيانات DB؟
وكيف نستدعي البيانات من روابط API ؟
ثريد مهم جدا لمحللي البيانات مع الشرح بالصور ووضع روابط المشاريع
الشرح باستخدام لغة Python
ومكتبة Pandas
ومحرر Jupyter Notebook
لتحميل المحرر أو استخدامه اونلاين علي هذا الرابط
jupyter.org
أول شي التعامل مع البيانات هي المهارة الأساسية لأي محلل بيانات ،هناك مصطلح يسمي التلاعب بالبيانات Data wrangling
والمقصود بالتلاعب استدعاء البيانات وتنظيفها والتعديل عليها حتي تصبح قابلة للإستخدام واستخراج الفوائد وبناء النماذج Models وهذه المرحلة تستغرق 80% من عملك علي البيانات
الطريقة الأولي :
استدعاء البيانات من ملفات CSV .
Csv اختصارا (Comma-separated values)
هذه هي الطريقة الأكثر شعبية وسهولة لحفظ البيانات والعمل عليها وفيها تكون البيانات داخل جدول علي هيئة صفوف وأعمدة كما بالصورة
باستخدام مكتبة pandas نقوم باستدعاء ملف CSV واستخراج البيانات
اول طريقة للإستدعاء هي تحميل ملف البيانات الذي يحمل امتداد CSV من داخل محرر Jupyter ثم البدء في العمل
هذه الصورة توضح طريقة استدعاء الملف وعرض أول 4 صفوف من البيانات باستخدام الدالة head في مكتبة pandas
مكتبة pandas تتمتع بالعديد من المزايا من أهمها دوال عرض البيانات والحذف والتعديل وحذف القيم المفقودة والمزيد من الفوائد
في هذه الصورة قمنا باستعراض القيم المفقودة في البيانات وتبين لنا ان القيم المفقودة صفر
واستخدمنا دوال isnull التي تعرض القيم و sum التي تحسب مجموع القيم
لكن قد يسأل البعض ما أهمية أكواد بايثون في علم البيانات اذا كانت المكتبات تفي بالغرض ؟
كونك مبرمج وفاهم جيدا بالأكواد فهذه أول مراحل النجاح والتمكين من اي تخصص برمجي سواء كان علم بيانات او ذكاء اصطناعي او غيره
علي سبيل المثال في بعض ملفات البيانات وجدنا ان الملف به بعض الأسطر>
الأسطر المحذوفة او التي يوجد بها مشكلة وعطلت عملية الإستدعاء
هنا تقوم بكتابة كود بايثون pure أي دون استخدام مكتبات
في هذه الصورة عند استدعاء الملف ظهر خطأ يقول هناك مشكلة في بعض الأسطر في الملف فكيف تقوم باستدعاء البيانات من تلك الملف ؟
هناك طريقتين كما ذكرت
الأولي بكتابة كود بايثون مثل الموجود بالصورة يقوم بعرض الأسطر التي يوجد بها المشاكل والتي عطلت عملية الإستدعاء
عن طريق بناء loop تكرار يطبع كل الأسطر داخل الملف ويقوم بترقيم السطر وعرض محتوياته
الطريقة الثانية
عن طريق مكتبة pandas تقوم بتخطي الأسطر التي يوجد بها مشكلة والتي ظهرت لك في رسالة الخطأ ويتم ذلك باستخدام الدالة skiprows
التي تخبر المحرر بتخطي عدد الأسطر التي يوجد بها الخلل ثم استدعاء البيانات من الملف
وهنا قمنا بتخطي 4 أسطر داخل ملف CSV
هناك طريقة أخري لاستدعاء ملفات CSV وهي عن طريق رابط البيانات
لاحظ في المثال الأول قمنا بتحميل الملف ورفعه علي سيرفر المحرر ثم العمل عليه
ولكن هنا نقوم بوضع رابط البيانات اذا تم توفره من الجهة التي تعمل عليها أو الموقع
والطريقة كما بالصورة ايضا باستخدام دالة request .
الطريقة الثانية :
استدعاء البيانات من ملفات JSON
اختصار
JavaScript Object Notation (JSON)
وهي ترميز للبيانات باستخدام جافا سكربت وتشبه كثيرا في عملها القواميس في لغة بايثون حيث يتم تخزين البيانات داخل مفاتيح Keys وقيم Values
ليست كل الجهات تقوم بحفظ بياناتها بتنسيق json >
استخراج البيانات في json سهل ومبسط حيث تقوم بكتابة دالة من بايثون توضح فيها اسم الملف وعدد الأسطر التي تريد طباعتها وتقوم بوضع loop تكرار باستخدام for يطبع كمية البيانات التي بحاجة اليها
ولكن قراءة البيانات في json غير مألوف للبعض لذلك الأفضل قرائتها علي شكل داتا فريم
لذلك من المفضل ان تستدعي ملف json من مكتبة Pandas كما استدعيت ملفات CSV وتقوم بقراءة الملف علي شكل صفوف وأعمدة ثم تطبق عليه دوال مكتبة Pandas التي تستخدمها في التعامل مع البيانات
وطريقة الاستدعاء كما بالشكل
هناك طرق اخري للتلاعب بالبيانات داخل ملفات json عن طريق استخدام Slice أي التقطيع في بايثون وطباعة البيانات بناء علي رقم السطر أو بناء علي اسم الصفوف كما بالصور
الطريقة الثالثة :
استدعاء البيانات من ملفات XML اختصار
Extensible Markup Languag
XML هي لغة ترميز عامة صنعت من أجل استخدامات خاصة قادرة علي وصف العديد من الأنواع المختلفة من البيانات
وصممت في الاساس لنقل وتخزين البيانات
في الغالب لن تتعامل معها كثيرا في تحليل البيانات
ولكن مجرد أن تأخذ فكرة عنه ستتعامل معه اذا اردت بإذن الله
استدعاء البيانات في xml يتم ايضا باستخدام أكواد بايثون
هكذا تكون شكل البيانات في xml تشبه الي حد ما ترتيب العناصر في لغة html ولكن ليس كنفس الترتيب والغرض
لاستدعاء البيانات يمكنك كتابة دالة تحتوي علي loop يمر علي الأسطر ويقوم بطباعة العدد المراد منها
هذا الكود هو استكمال للدالة التي شرحناها في استدعاء البيانات من ملفات Json
قي يسأل البعض هل يوجد شي اسهل من ملفات XML لأنها في النهاية عبارة عن محتوي موقع ويب او صفحة معينة >
نعم بخصوص صفحات الويب يوجد أشياء رائعة مثل مكتبة Beautiful Soup
والتي تمكنك من تحليل واستخراج بيانات أي موقع ويب وذلك عن طريق كتابة العناصر الموجودة بأكواد الموقع سواء كان xml أو html
كما موجود بالصورة ، سأقوم بشرحها بشكل خاص لان بها العديد من المميزات
الطريقة الرابعة : قواعد البيانات
هنا ستدخل عالم استخراج البيانات ولا أقول لك أن هذه الطريقة غير مستخدمة كثيرا ولكن هذه بالأصل الطريقة المستخدمة والأهم في حفظ البيانات بالشركات العملاقة وحتي الصغيرة حول العالم ، كونك محلل بيانات لابد أن تتعلم كيف تتعامل مع قواعد البيانات
أول شي اريدك ان لا تستغرب بالنسبة لقواعد البيانات فالشرح هنا يتم عن طريق استدعاء القاعدة داخل محرر Jupyter Notebook
ثم استخراج البيانات منها باستخدام مكتبة Pandas
هنا قمنا برفع قاعدة البيانات ثم طباعة البيانات من داخلها ولاحظ كتابة أوامر SQL بشكل عادي جدا داخل pandas
هنا سنقوم بطباعة صفوف معينة داخل القاعدة باستخدام الأمر Select ثم تحديد الصفوف
الفرق الوحيد هنا انك تعمل داخل المحرر وتستخدم مكتبة Pandas ثم تقوم بوضع أوامر sql بشكل طبيعي جدا داخل علامات التنصيص
وفي هذا المثال تستخدم الشرط Where لاستخراج بيانات معينة داخل القاعدة
هناك شئ هام بالنسبة لقواعد البيانات واستخدامها مع مكتبة Pandas
هناك فرق بسيط في التعامل مع Sqlite3 التي نعمل عليها الآن وSqlalchemy قد تكون فروقات بسيطة في الإستدعاء وطرق الكتابة
هناك شئ اخر بالنسبة لقواعد البيانات هو تحميل القاعدة علي السيرفر والتعامل عليها من شاشة الترمنال باستخدام أوامر sql قد يكون اسهل ولكن في تحليل البيانات انت بحاجة الي معرفة الكثير أو بعض الطرق للتعامل مع البيانات
هنا ستجد دورة شاملة بالعربي لتعلم أوامرSQL
harmash.com
الطريقة الرابعة والأخيرة :
استخراج البيانات من API اختصار
Application Programming Interface
معروف أهمية API عند المبرمجين وانه وسيط بينك وبين الموقع اللي بيقدم الخدمة ومن خلاله تقدر تسحب البيانات المطلوبة
فكرة API في تحليل البيانات هي الاستغناء عن طرق web Scraping >
وتوفير حل أفضل وآمن لسحب البيانات من الجهة الأخري
الفكرة بتكون عبارة عن نسخ رابط API الذي تقوم بنسخه من موقع الخدمة ثم العمل عليه بشكل برمجي لطباعة البيانات التي تريدها
هذا المثال لرابط API لعرض أسعار البتكوين من موقع Kraken
البيانات بيتم عرضها علي شكل تنسيق json الذي ذكرناه
كما يمكنك ايضا عرض جزء من البيانات عن طريق كتابة اسم Keys الذي يحمل البيانات في json
هنا رابط API اخر لعرض مجموعة من الكتب نقوم باستدعاء البيانات وعرضها بنفس الطريقة ايضا
لاحظ دالة request شئ اساسي في استدعاء بيانات API
هناك مهارات كثيرة تحتاج للبحث يمكنك استخدامها مع بيانات API والتلاعب بالبيانات كما تحب بإذن الله
وبشكل عام هذا رابط مواقع عديدة تقدم خدمة API في العديد من المجالات المختلفة يمكنك اختيار ما تحب والعمل عليه بإذن الله
github.com
أرجو أن اكون وفقت في الطرح وان شاء الله سأقوم بتنزيل المزيد من المواضيع الهامة في علم البيانات
للأهمية هذا الطرح يعتبر بداية شرح سلسلة دروس ETL وهي جانب مهم في علم البيانات يسمي أنابيب خطوط البيانات Data Pipelines
لتحميل الملفات والدروس
github.com

جاري تحميل الاقتراحات...