Hani Dabash 💻
Hani Dabash 💻

@HaniDabash

18 تغريدة 21 قراءة Jun 13, 2020
إستكمالاً لثريدات تحليل البيانات بالـ #Python
في هذا الـ #الثريد سأتحدث عن مكتبة Pandas المهمة جداً ..
تعرفنا سابقاً عن مكتبة NumPy وكانت تتعامل مع البيانات في مصفوفات Arrays .. لكن pandas تتعامل مع البيانات في DataFrames ..
تحدثت سابقاً وشرحت مكتبة NumPy في ثريد مستقل .. إن فاتك تستطيع الوصول إليه من هنا ..
أما الآن سأتحدث عن Pandas التي لا تقل أهمية عن NumPy في منظومة مكتبات تحليل البيانات بالـ Python ..
في البداية عليك أن تعرف أن مكتبة pandas تتعامل مع البيانات في نوعين وهما Series وهو الأصل والنوع الآخر هو الـ DataFrames الذي هو أساسا عبارة عن Series مركب ..
للتعامل مع مكتبة pandas عليك استدعائها أولاً بـ
import pandas as pd
والمعلومة الأولى اللي بأذكرها هي إنه بإمكانك تحويل الـ NumPy Array إلى Series باستعمال الـ pandas أو تحويل الـ Lists .. وهذا الأمر جداً مفيد في حالة إذا عندك العديد من المصفوفات وأردت التعامل معها ك DataFrames
كما نلاحظ في المثال السابق .. الـ Index افتراضي بدأ من 0 وتزايد حتى إنتهاء البيانات .. لكن في العالم الحقيقي غالباً نحن نريد إعطاء البيانات Index خاص بنا .. مثلاً هنا أريد وصف الأعداد بحسب المدن ..
ببساطة عرف list وأدخلها ك parameter للميثود
pd.Series(Data , Your_Index)
للوصول لقيمة محددة داخل الـ Series كل ماعليك فعله هو حفظ الـ Series داخل متغير .. ثم كتابة التالي ..
variable[index]
مثلاً هنا وضعت الـSeries داخل متغير بإسم friday وحددت الرياض داخل الأقواس للوصول لبياناتها ..
طيب الآن إذا عندنا أكثر من Series وأردنا دمجهم في Series واحد ..
ببساطة كل ماعليك فعله هو كتابة
series1 + series2
وسيتم دمج الاثنين .. يفضل وضعهم في متغير كالتالي ..
series3 = series1 + series2
الصورة توضح الأمر .. إذا أردنا مثلاً ان نجمع حالات اليوم الجمعة مع اجمالي الحالات
الآن ننتقل للجزء المهم في مكتبة pandas وهو التعامل مع الـ DataFrames ..
الـ DataFrames ببساطة هي صفوف وأعمدة من البيانات ..
في التغريدة التالية سأطرح مثال لداتا فريم مكون من أعداد عشوائية باستعمال randn ( تم شرحه سابقاً في NumPy ) ..
واعطاء الداتا فريم أسماء للأعمدة والصفوف ..
في هذا المثال غذيت الـ DataFrame بثلاث متغيرات ضرورية .. وهي
my_data <<>> البيانات
my_columns <<>> أسماء الأعمدة
my_rows <<>> أسماء الصفوف
وكل هذه البيانات جمعتها في متغير من نوع DataFrame باستعمال
pd.DataFrame()
الآن ندخل على إجراء العمليات المختلفة على هذا الـ DataFrame ..
بداية إذا أردنا استخراج عمود مكة كامل من الـ DataFrame ..
بكل بساطة تكتب ..
dataFrame['makkah']
ومثل ماتلاحظ خرج كـ Series لأنه كما ذكرت سابقاً الـ DataFrames في الأصل Series .. مع نوع البيانات في آخر سطر ..
لكن في حالة إذا أردت استخراج صف من الـ DataFrame لن تسمح لك بايثون بكتابة اسم الصف فقط .. راح يظهر لك error .. في هذه الحالة عليك استعمال loc
كالتالي ..
dataFrame.loc['ROW NAME']
وإذا أردت حذف عمود من الـ DataFrame كل ماعليك فعله هو استعمال الدالة drop كالتالي ..
dataFrame.drop('COLUMN NAME' , axis=1)
الـ parameter axis يحدد ما إذا كان الحذف للصفوف أم الأعمدة .. الأعمدة = 1 والصفوف = 0 ..
مع العلم أن الدالة drop لا تحذف العمود أو الصف بشكل حقيقي من الـ DataFrame .. إذا أردت الحذف بشكل حقيقي ودئم عليك أن تستعمل parameter ثالث وهو inplace وتعطيه القيمة True لتؤكد على pandas حذف العمود أو الصف ..
أما لإضافة عمود بيانات جديد على الـ DataFrame فكل ماعليك فعله هو كتابة اسم العمود داخل الـ DataFrame وإعطاءه البيانات ..
مثال
من الميزات الرهيبة في مكتبة pandas .. استعمال العمليات المنطقية على الـ DataFrame بكل بساطة وبسطر واحد .. لتحليل ما إذا كانت البيانات تتوافق مع شروطك أم لا ..
كمثالنا هنا .. إذا أردنا أن نستخرج فقط البيانات التي هي أكثر من العدد 0 ..
بكل بساطة تكتب
dataFrame > 0
والأفضل تخزينه في متغير لإستخراج البيانات بعد المقارنة .. مثل ..
big_numbers - dataFrame > 0
وبكذا استثنينا جميع البيانات التي لاتحقق شرط ( أكبر من صفر ) ..
أو أياً كانت الشروط المفروضة على بياناتك ..
أتمنى حقيقة اني وفقت في إيصال المعلومة لكم .. هذا الثريد بالذات كتبته وأنا جداً نعسان ومتخوف إني ماشرحت كل شيء بشكل واضح ..
لكن على كل حال الخاص مفتوح للجميع في حال واجهت أي مشكلة فيما شرحت ..
مع العلم إنه اللي ذكرته هو جزء بسيط مكتبة pandas وغالباً الثريد القادم في تحليل البيانات عنها أيضا واستكمالاً لخصائصها .. وبعد ذلك ندخل في matplotlib ..
بالتوفيق للجميع يارب ❤🤗

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