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

لماذا تُعد Pandas أداة أساسية في تحليل البيانات؟
تكمن قوة Pandas في أنها تمنحك أدوات جاهزة للتعامل مع البيانات بطريقة سريعة ومنظمة، بدلاً من بناء كل شيء من الصفر. وهي مفيدة خصوصاً عند العمل على:
- تنظيف البيانات غير المكتملة أو غير المتسقة.
- تصفية الصفوف والأعمدة حسب شروط محددة.
- تحويل البيانات إلى صيغ شائعة مثل
JSONوCSV. - تحليل القيم الفريدة والأنماط المتكررة.
- التعامل مع ملفات كبيرة دون استهلاك الذاكرة بالكامل.
كيفية حذف القيم المفقودة من DataFrame
إزالة القيم المفقودة من أكثر المهام شيوعاً في تنظيف البيانات. فقد تظهر هذه القيم في صف واحد أو عمود واحد أو في أجزاء متعددة من الجدول. واختيار طريقة المعالجة يعتمد على طبيعة المشروع، إذ يمكنك أحياناً تعويض القيم المفقودة بمتوسط البيانات، أو استخدام الاستيفاء، أو حذف الصفوف غير المكتملة تماماً.
توفّر Pandas الدالة dropna() لحذف الصفوف أو الأعمدة التي تحتوي على قيم مفقودة. ومن أهم الوسائط المستخدمة معها:
axis: لتحديد ما إذا كنت تريد حذف الصفوفaxis=0أو الأعمدةaxis=1.subset: لتحديد أعمدة معيّنة فقط لفحص القيم المفقودة عند حذف الصفوف.inplace: لتطبيق التعديل مباشرة علىDataFrameالحالي.
هذه الدالة مفيدة عندما تريد تجهيز البيانات بسرعة قبل البدء في التحليل أو التدريب على النماذج.

كيفية حذف الصفوف المكررة من DataFrame
تكرار الصفوف قد يسبب نتائج مضللة عند التحليل، خاصة عند احتساب المتوسطات أو الإحصاءات أو تدريب النماذج. لذلك فإن إزالة التكرار خطوة أساسية في تنظيف البيانات.
تُستخدم الدالة drop_duplicates() لهذا الغرض، ومن أبرز وسائطها:
subset: لتحديد الأعمدة التي تريد الاعتماد عليها لاكتشاف التكرار.inplace: لتنفيذ التعديل على الجدول نفسه.keep: لتحديد الصف الذي تريد الاحتفاظ به عند وجود تكرار، مثلfirstأوlast، أوFalseلحذف جميع الصفوف المكررة.
استخدام هذه الدالة مهم عندما تتعامل مع بيانات مستخرجة من مصادر متعددة أو ملفات تم دمجها أكثر من مرة.

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

كيفية تحويل DataFrame إلى JSON
تُعد صيغة JSON من أشهر صيغ تبادل البيانات بين التطبيقات والواجهات البرمجية. وإذا كنت تحتاج إلى إرسال بيانات جدول إلى خدمة خارجية أو واجهة API، فإن تحويل DataFrame إلى JSON خطوة شائعة جداً.
توفّر Pandas الدالة to_json() لهذا الغرض، ومن أهم وسائطها:
orient: لتحديد شكل المفاتيح والقيم في الناتج، والقيمة الافتراضية هيcolumns.date_format: لتحديد طريقة تمثيل التواريخ، والقيمة الافتراضية عادة هيepoch.
عند استخدام الإعداد الافتراضي، تكون أسماء الأعمدة هي المفاتيح الرئيسية، وتُخزّن القيم تحت فهارس الصفوف.

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.

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

كيفية حفظ DataFrame كملف CSV
حفظ البيانات في ملف CSV من أبسط العمليات وأكثرها استخداماً، سواء لأغراض المشاركة أو التخزين أو الاستيراد في أدوات أخرى مثل الجداول الممتدة أو برامج التحليل.
يكفي سطر واحد فقط لحفظ الجدول:
dataset.to_csv("save_as_csv.csv")
ويمكنك لاحقاً إضافة خيارات أخرى مثل تعطيل حفظ الفهرس أو تحديد الترميز المناسب للغة العربية عند الحاجة.
كيفية حفظ عدة قوائم داخل ملف CSV واحد
إذا كانت البيانات موجودة لديك على هيئة عدة قوائم منفصلة، فيمكنك دمجها أولاً قبل حفظها داخل ملف واحد. الطريقة الشائعة تعتمد على ربط العناصر المتناظرة باستخدام zip()، ثم تحويل الناتج إلى قائمة، وبعدها إنشاء DataFrame.
هذه الخطوة مفيدة عند جمع البيانات من مصادر أولية بسيطة أو عند بناء ملفات تجريبية بسرعة.

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

ولتحسين الأداء أكثر، يمكنك قراءة الأعمدة التي تحتاجها فقط، واختيار أنواع بيانات أصغر حجماً للأعمدة كلما كان ذلك ممكناً.
كيفية تعديل جميع القيم في عمود باستخدام apply()
من الميزات العملية في Pandas إمكانية تطبيق منطق مخصص على جميع عناصر عمود معيّن. وتُستخدم الدالة apply() كثيراً عندما تحتاج إلى تحويل القيم وفق قاعدة محددة.
في المثال المذكور، يتم التركيز على العمود Hours_Worked، بحيث تُزاد القيمة بمقدار 1 إذا كانت زوجية، وبمقدار 2 إذا كانت فردية. ويمكن تنفيذ ذلك من خلال دالة lambda.
هذا النوع من المعالجة مفيد في:
- تصحيح القيم قبل التحليل.
- توحيد التنسيقات.
- إنشاء أعمدة مشتقة منطقية.
- تنفيذ قواعد أعمال مخصصة على البيانات.

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