كيف تبدأ استخدام Pandas في Python: دليل عملي للمبتدئين

دقائق القراءة: 6

مقدمة إلى مكتبة Pandas في Python

تُعد مكتبة Pandas واحدة من أهم الأدوات في عالم تحليل البيانات باستخدام Python، لأنها توفّر بنية مرنة وفعالة للتعامل مع الجداول والبيانات المنظمة. ومن خلال عدد كبير من الدوال الجاهزة، يمكنك تنفيذ عمليات تنظيف البيانات، ومعالجة القيم المفقودة، والتخلّص من التكرار، وتحويل الصيغ، وقراءة الملفات الضخمة بكفاءة عالية.

إذا كنت في بداية رحلتك مع تحليل البيانات أو علوم البيانات، فإن تعلّم أساسيات Pandas سيوفّر عليك كثيراً من الوقت والجهد. في هذا الدليل العملي، سنستعرض مجموعة من أكثر الوظائف استخداماً، مع شرح واضح يركّز على الفائدة الفعلية في المشاريع الواقعية.

مقدمة عملية لتعلم مكتبة Pandas في بايثون لتحليل البيانات وتنظيفها

لماذا تُعد Pandas أداة أساسية في تحليل البيانات؟

تكمن قوة Pandas في أنها تمنحك أدوات جاهزة للتعامل مع البيانات بطريقة سريعة ومنظمة، بدلاً من بناء كل شيء من الصفر. وهي مفيدة خصوصاً عند العمل على:

  • تنظيف البيانات غير المكتملة أو غير المتسقة.
  • تصفية الصفوف والأعمدة حسب شروط محددة.
  • تحويل البيانات إلى صيغ شائعة مثل JSON وCSV.
  • تحليل القيم الفريدة والأنماط المتكررة.
  • التعامل مع ملفات كبيرة دون استهلاك الذاكرة بالكامل.

كيفية حذف القيم المفقودة من DataFrame

إزالة القيم المفقودة من أكثر المهام شيوعاً في تنظيف البيانات. فقد تظهر هذه القيم في صف واحد أو عمود واحد أو في أجزاء متعددة من الجدول. واختيار طريقة المعالجة يعتمد على طبيعة المشروع، إذ يمكنك أحياناً تعويض القيم المفقودة بمتوسط البيانات، أو استخدام الاستيفاء، أو حذف الصفوف غير المكتملة تماماً.

توفّر Pandas الدالة dropna() لحذف الصفوف أو الأعمدة التي تحتوي على قيم مفقودة. ومن أهم الوسائط المستخدمة معها:

  • axis: لتحديد ما إذا كنت تريد حذف الصفوف axis=0 أو الأعمدة axis=1.
  • subset: لتحديد أعمدة معيّنة فقط لفحص القيم المفقودة عند حذف الصفوف.
  • inplace: لتطبيق التعديل مباشرة على DataFrame الحالي.

هذه الدالة مفيدة عندما تريد تجهيز البيانات بسرعة قبل البدء في التحليل أو التدريب على النماذج.

مثال على حذف القيم المفقودة من DataFrame باستخدام Pandas

كيفية حذف الصفوف المكررة من DataFrame

تكرار الصفوف قد يسبب نتائج مضللة عند التحليل، خاصة عند احتساب المتوسطات أو الإحصاءات أو تدريب النماذج. لذلك فإن إزالة التكرار خطوة أساسية في تنظيف البيانات.

تُستخدم الدالة drop_duplicates() لهذا الغرض، ومن أبرز وسائطها:

  • subset: لتحديد الأعمدة التي تريد الاعتماد عليها لاكتشاف التكرار.
  • inplace: لتنفيذ التعديل على الجدول نفسه.
  • keep: لتحديد الصف الذي تريد الاحتفاظ به عند وجود تكرار، مثل first أو last، أو False لحذف جميع الصفوف المكررة.

استخدام هذه الدالة مهم عندما تتعامل مع بيانات مستخرجة من مصادر متعددة أو ملفات تم دمجها أكثر من مرة.

حذف الصفوف المكررة من DataFrame في Pandas

كيفية تصفية الصفوف اعتماداً على قيم أعمدة محددة

في كثير من الحالات، لا تحتاج إلى جميع البيانات، بل ترغب في الاحتفاظ بالصفوف التي تستوفي شروطاً معينة فقط. على سبيل المثال، قد تريد عرض المشاريع التي نوعها Web فقط، أو الصفوف التي يكون فيها عدد ساعات العمل مساوياً لقيمة محددة.

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

تصفية الصفوف في Pandas بناء على قيم أعمدة محددة

كيفية تحويل DataFrame إلى JSON

تُعد صيغة JSON من أشهر صيغ تبادل البيانات بين التطبيقات والواجهات البرمجية. وإذا كنت تحتاج إلى إرسال بيانات جدول إلى خدمة خارجية أو واجهة API، فإن تحويل DataFrame إلى JSON خطوة شائعة جداً.

توفّر Pandas الدالة to_json() لهذا الغرض، ومن أهم وسائطها:

  • orient: لتحديد شكل المفاتيح والقيم في الناتج، والقيمة الافتراضية هي columns.
  • date_format: لتحديد طريقة تمثيل التواريخ، والقيمة الافتراضية عادة هي epoch.

عند استخدام الإعداد الافتراضي، تكون أسماء الأعمدة هي المفاتيح الرئيسية، وتُخزّن القيم تحت فهارس الصفوف.

تحويل DataFrame إلى JSON باستخدام Pandas

column_0 : { row_index_0 : column_value_0, row_index_1 : column_value_1, ...},
column_1 : { row_index_0 : column_value_0, row_index_1 : column_value_1, ...},
...
column_N : { row_index_0 : column_value_0, row_index_1 : column_value_1, ...}

أما إذا أردت تمثيل كل صف على هيئة كائن مستقل، فيمكنك استخدام orient=records، ثم معالجة الناتج باستخدام وحدة JSON في Python.

تحويل DataFrame إلى JSON باستخدام orient records في Pandas

كيفية حساب عدد القيم الفريدة داخل عمود

عند تحليل البيانات، قد تحتاج إلى معرفة عدد الأنواع أو الفئات المختلفة الموجودة في عمود معين. على سبيل المثال، إذا كان لديك عمود لأنواع المشاريع، فقد تريد معرفة عدد الأنواع الفريدة المسجّلة داخله.

تُستخدم الدالة nunique() للحصول على هذا الرقم بسرعة، وهي مفيدة في فهم تنوع البيانات واكتشاف الأعمدة ذات القيم المحدودة أو الواسعة.

حساب عدد القيم الفريدة في عمود باستخدام Pandas

كيفية حفظ DataFrame كملف CSV

حفظ البيانات في ملف CSV من أبسط العمليات وأكثرها استخداماً، سواء لأغراض المشاركة أو التخزين أو الاستيراد في أدوات أخرى مثل الجداول الممتدة أو برامج التحليل.

يكفي سطر واحد فقط لحفظ الجدول:

dataset.to_csv("save_as_csv.csv")

ويمكنك لاحقاً إضافة خيارات أخرى مثل تعطيل حفظ الفهرس أو تحديد الترميز المناسب للغة العربية عند الحاجة.

كيفية حفظ عدة قوائم داخل ملف CSV واحد

إذا كانت البيانات موجودة لديك على هيئة عدة قوائم منفصلة، فيمكنك دمجها أولاً قبل حفظها داخل ملف واحد. الطريقة الشائعة تعتمد على ربط العناصر المتناظرة باستخدام zip()، ثم تحويل الناتج إلى قائمة، وبعدها إنشاء DataFrame.

هذه الخطوة مفيدة عند جمع البيانات من مصادر أولية بسيطة أو عند بناء ملفات تجريبية بسرعة.

دمج عدة قوائم وحفظها في ملف CSV باستخدام Pandas

كيفية قراءة ملفات ضخمة بكفاءة في استهلاك الذاكرة

عند التعامل مع ملفات كبيرة جداً، قد لا يكون من العملي تحميل الملف بالكامل في الذاكرة مرة واحدة. وهنا تظهر أهمية القراءة الجزئية أو ما يُعرف باسم chunking.

في هذا الأسلوب، يمكنك إنشاء كائن من نوع TextFileReader عبر القراءة باستخدام وسيط chunksize، وهو يحدد عدد الصفوف التي ستُقرأ في كل دفعة. وبدلاً من تحميل آلاف الصفوف دفعة واحدة، تتم معالجة الملف على أجزاء صغيرة، مما يقلّل استهلاك الذاكرة بشكل واضح.

هذا الأسلوب مناسب جداً لعمليات مثل:

  • تنظيف الملفات الكبيرة تدريجياً.
  • تصفية الصفوف غير المطلوبة أثناء القراءة.
  • استخراج أعمدة محددة فقط.
  • بناء نسخة أصغر من مجموعة بيانات ضخمة.

في المثال المشار إليه، تتم قراءة مجموعة بيانات california بمعدل 1000 صف في كل دفعة، ثم حذف الصفوف التي تكون فيها قيمة median_income أقل من أو تساوي 3، وبعد ذلك دمج الأجزاء الناتجة في مجموعة أصغر.

قراءة ملفات كبيرة في Pandas بكفاءة عالية في استهلاك الذاكرة

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

كيفية تعديل جميع القيم في عمود باستخدام apply()

من الميزات العملية في Pandas إمكانية تطبيق منطق مخصص على جميع عناصر عمود معيّن. وتُستخدم الدالة apply() كثيراً عندما تحتاج إلى تحويل القيم وفق قاعدة محددة.

في المثال المذكور، يتم التركيز على العمود Hours_Worked، بحيث تُزاد القيمة بمقدار 1 إذا كانت زوجية، وبمقدار 2 إذا كانت فردية. ويمكن تنفيذ ذلك من خلال دالة lambda.

هذا النوع من المعالجة مفيد في:

  • تصحيح القيم قبل التحليل.
  • توحيد التنسيقات.
  • إنشاء أعمدة مشتقة منطقية.
  • تنفيذ قواعد أعمال مخصصة على البيانات.

تعديل قيم عمود كامل باستخدام apply في Pandas

نصائح عملية للمبتدئين عند تعلم Pandas

ابدأ بالأساسيات قبل التوسع

لا تحاول تعلّم كل شيء دفعة واحدة. ركّز أولاً على قراءة البيانات، واستعراضها، وتنظيفها، ثم انتقل تدريجياً إلى التصفية والتحويل والتجميع.

افهم البيانات قبل تعديلها

قبل استخدام دوال مثل dropna() أو drop_duplicates()، من المهم أن تفهم طبيعة البيانات، لأن الحذف العشوائي قد يزيل معلومات مهمة.

استخدم التوثيق الرسمي باستمرار

توثيق Pandas غني بالأمثلة والخيارات التفصيلية، والرجوع إليه سيساعدك على اختيار الدالة الأنسب لكل حالة.

طبّق على بيانات واقعية

أفضل طريقة لإتقان Pandas هي العمل على ملفات حقيقية تحتوي على مشاكل فعلية، مثل القيم المفقودة، وتكرار الصفوف، واختلاف أنواع البيانات.

الخلاصة التقنية

مكتبة Pandas ليست مجرد أداة لقراءة الجداول، بل هي بيئة متكاملة لمعالجة البيانات وتحضيرها للتحليل أو النمذجة أو التصدير. أكثر ما يميزها هو التوازن بين سهولة الاستخدام وقوة الإمكانات. وإذا أتقنت الدوال الأساسية مثل dropna() وdrop_duplicates() وto_json() وapply()، فستتمكن من تنفيذ جزء كبير من مهام تنظيف البيانات بكفاءة ووضوح. ومن الناحية العملية، فإن بناء أساس قوي في Pandas يختصر كثيراً من الوقت في أي مشروع يعتمد على البيانات داخل Python.

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *