مقدمة:
تعد البيانات اليوم مصدراً أساسياً لكثير من الأنشطة في عالمنا حيث أن متوسط ماننتجه يوميًا من البيانات يقدر بـ 2.5×1018 بايت وتتنوع صيغ ومصادر تخزين هذه البيانات بناءً على أسباب عديدة من ذلك: المجال أو التقنية المراد توظيف البيانات من خلالها ، المشكلة التي نرغب بحلها ، الطريقة المثلى لاستعراض واسترجاع البيانات للمستخدمين أو حتى طريقة تعامل الآلات مع تلك البيانات.
نتناول في هذا الدرس أشهر صيغ تخزين البيانات وطرق سحبها من مصادر مختلفة باستخدام لغة بايثون وتحويلها لإطار بيانات DataFrame باستخدام مكتبة Pandas وذلك لغرض استخدامها في مشاريع علم البيانات والتعلم الآلي.
1- التعامل مع ملفات CSV
ملفات CSV هي ملفات تحتوي على قيم مفصول فيما بينها بعلامة الترقيم الفاصلة comma-separated values أي أن بين كل قيمة والتي تليها إشارة فاصلة (،) ولفهم المسألة تم ارفاق نموذج توضيحي لملف CSV.
يتم استخلاص البيانات من ملف CSV وتخزينها في إطار بيانات من خلال الأسطر التالية :
2- التعامل مع ملفات txt
TSV هي اختصار لـ Tab-separated values أي أن القيم يتم فصلها من خلال مفتاح TAB على لوحة المفاتيح بدلاً من الفاصلة.
يتم استخلاص البيانات من ملف TSV وتخزينها في إطار بيانات من خلال الأسطر التالية:
نلاحظ في هذه المرة أنه تم تمرير القيمة ‘t\’ للمعامل sep للإشارة أن البيانات مخزنة بطريقة tsv
حالات خاصة يجب التنبه لها أثناء سحب البيانات من الملفات:
– الملفات المفصولة بـمفتاح مسافة فارغة
– الملفات التي لا تحتوي على أسماء للأعمدة
– الملفات التي تحتوي على قيم متطرفة أو مفقودة (سنخصص درس مستقل لها!)
3- التعامل مع ملفات JSON
تشير صيغة ملفات JSON إلى JavaScript Object Notation والتي تستخدم بشكل واسع في تخزين البيانات من المواقع الإلكترونية و هذه الصيغة تشبه في تركيبها القواميس Dictionaries في لغة بايثون أدناه صورة توضيحة
يتم استخلاص البيانات من ملف JSON وتخزينها في إطار بيانات من خلال الأسطر التالية:
4- التعامل مع قواعد بيانات SQL
SQL أو لغة الاستعلام الهيكلية structured query language هي لغة تقوم على إنشاء استعلامات queries على قواعد بيانات علائقية تتكون عادة من عدة جداول ترتبط ببعضها من خلال أعمدة مشتركة.
يوجد العديد من الشركات التي تقدم خدمات قواعد بيانات SQL تتشابه هذه القواعد من حيث العمل وتختلف قليلا من ناحية بناء الاستفسارات على سبيل المثال لا الحصر :
- Microsoft SQL server
- Postgres
- AWS RedShift
- MySQL
- DB2 Family
- Oracle DB
سنستخدم مكتبتي SQLite3 و Pandas لاستخلاص البيانات من ملف db وتخزينها في إطار بيانات:
5- التعامل مع قواعد بيانات NoSQL
تتميز هذه القواعد بسرعتها و مقدرتها على تقليل التكاليف التقنية مقارنة بـقواعد SQL حيث أن معظم قواعد NoSQL تخزن البيانات على هيئة ملفات JSON وكما هو الحال مع قواعد SQL يوجد العديد من الخدمات المقترنة بقواعد No SQL أبرزها :
- Mongo DB
- couch DB
- Riak
- Cassandra
سنستخدم مكتبتي Pymongo و Pandas لاستخلاص البيانات من ملف db وتخزينها في إطار بيانات:
6- التعامل مع الـ APIs
العديد من مقدمي البيانات مفتوحة المصدر يسعون لإتاحاة الوصول لبياناتهم بأسهل الطرق الممكنة ومن ذلك استخدام الواجهات البرمجية للتطبيق حيث كل ماتحتاجه هو رابط URL لسحب واسترجاع البيانات عن طريق بايثون ومن أشهر المواقع التي تقدم هذا النوع من البيانات UCI Machine Learning Repository
مثال تطبيقي:
انتهى الدرس !