مكتبة Pandas في بايثون: دليلك الشامل لتحليل البيانات
تعتبر مكتبة Pandas حجر الزاوية في مجال علم البيانات باستخدام لغة بايثون. توفر هذه المكتبة هياكل بيانات قوية ومرنة وأدوات تحليلية تجعل من التعامل مع البيانات المنظمة (مثل الجداول أو البيانات الزمنية) أمرًا في غاية السهولة والكفاءة. إذا كنت تخطط للعمل في مجال تحليل البيانات، تعلم الآلة، أو أي مجال يتطلب معالجة كميات كبيرة من البيانات، فإن Pandas هي الأداة التي لا غنى عنها.
ما هي Pandas؟
Pandas هي مكتبة مفتوحة المصدر مبنية على مكتبة NumPy، وهي مصممة خصيصًا لمعالجة البيانات وتحليلها. الاسم “Pandas” مشتق من مصطلح “Panel Data” (بيانات لوحية)، وهو مصطلح اقتصادي يشير إلى مجموعات البيانات التي تتضمن ملاحظات على مدى فترات زمنية متعددة.
الهدف الأساسي من Pandas هو توفير هياكل بيانات بديهية وفعالة للعمل مع “البيانات العلائقية” أو “المصنفة”.
هياكل البيانات الأساسية في Pandas
هناك نوعان أساسيان من هياكل البيانات في Pandas:
1. السلسلة (Series)
السلسلة هي كائن يشبه مصفوفة أحادية البعد يمكنه تخزين أي نوع من البيانات (أرقام، نصوص، كائنات بايثون، إلخ). لكل عنصر في السلسلة فهرس (index) فريد يميزه.
يمكنك التفكير في السلسلة كعمود واحد في جدول بيانات.
مثال على إنشاء سلسلة:
import pandas as pd
# إنشاء سلسلة من قائمة
s = pd.Series([1, 3, 5, None, 6, 8])
print(s)
# Output:
# 0 1.0
# 1 3.0
# 2 5.0
# 3 NaN
# 4 6.0
# 5 8.0
# dtype: float64
2. إطار البيانات (DataFrame)
إطار البيانات هو هيكل بيانات ثنائي الأبعاد يشبه جدول بيانات Excel أو جدول في قاعدة بيانات SQL. يتكون من مجموعة مرتبة من الأعمدة، حيث يمكن لكل عمود أن يكون من نوع مختلف. يمتلك إطار البيانات فهرسًا لكل من الصفوف والأعمدة.
يعتبر DataFrame هو هيكل البيانات الأكثر استخدامًا في Pandas.
مثال على إنشاء DataFrame:
import pandas as pd
# إنشاء DataFrame من قاموس
data = {'الاسم': ['أحمد', 'سارة', 'علي', 'نورة'],
'العمر': [28, 24, 35, 29],
'المدينة': ['الرياض', 'جدة', 'الدمام', 'الرياض']}
df = pd.DataFrame(data)
print(df)
# Output:
# الاسم العمر المدينة
# 0 أحمد 28 الرياض
# 1 سارة 24 جدة
# 2 علي 35 الدمام
# 3 نورة 29 الرياض
أهم العمليات في Pandas
توفر Pandas مجموعة واسعة من الوظائف التي تجعل تحليل البيانات فعالاً.
1. قراءة وكتابة البيانات
يمكن لـ Pandas قراءة البيانات من مصادر متعددة مثل ملفات CSV و Excel وقواعد بيانات SQL وملفات JSON، وكتابتها إليها بسهولة.
مثال على قراءة ملف CSV:
# قراءة البيانات من ملف CSV إلى DataFrame
df_csv = pd.read_csv('my_data.csv')
# عرض أول 5 صفوف من البيانات
print(df_csv.head())
# Output (example):
# id name age city
# 0 1 Ahmed 28 Riyadh
# 1 2 Sara 24 Jeddah
# 2 3 Ali 35 Dammam
# 3 4 Nora 29 Riyadh
# 4 5 Omar 31 Mecca
مثال على كتابة البيانات إلى ملف Excel:
# كتابة DataFrame إلى ملف Excel
df.to_excel('output.xlsx', index=False)
2. اختيار وتصفية البيانات (Selection & Filtering)
تتيح لك Pandas طرقًا متعددة لاختيار أجزاء معينة من بياناتك:
- اختيار عمود:
df['العمر'] - اختيار صفوف باستخدام الفهرس:
df.iloc[0:2](لاختيار أول صفين) - اختيار صفوف بناءً على شرط:
df[df['العمر'] > 30](لاختيار الأشخاص الذين تزيد أعمارهم عن 30)
مثال:
# اختيار الأشخاص من مدينة الرياض فقط
riyadh_people = df[df['المدينة'] == 'الرياض']
print(riyadh_people)
3. التعامل مع البيانات المفقودة
البيانات في العالم الحقيقي غالبًا ما تكون غير مكتملة. توفر Pandas وظائف سهلة للتعامل مع القيم المفقودة (NaN):
dropna(): لحذف الصفوف أو الأعمدة التي تحتوي على قيم مفقودة.fillna(): لملء القيم المفقودة بقيمة محددة (مثل المتوسط الحسابي أو الوسيط).
مثال:
# ملء القيم المفقودة في عمود 'العمر' بمتوسط الأعمار
mean_age = df['العمر'].mean()
df['العمر'].fillna(mean_age, inplace=True)
4. تجميع البيانات (Grouping)
تعتبر عملية “Group By” من أقوى الميزات في Pandas. تتيح لك تجميع البيانات بناءً على فئات معينة ثم تطبيق دوال عليها (مثل sum, mean, count).
مثال: حساب متوسط العمر لكل مدينة:
# تجميع البيانات حسب المدينة وحساب متوسط العمر
city_age_mean = df.groupby('المدينة')['العمر'].mean()
print(city_age_mean)
5. دمج وتوصيل إطارات البيانات (Merging & Joining)
يمكنك دمج إطارات بيانات متعددة معًا باستخدام عمليات مشابهة لـ SQL JOINs:
pd.merge(): لدمج إطارات البيانات بناءً على عمود مشترك.pd.concat(): لربط إطارات البيانات إما أفقيًا أو رأسيًا.
لماذا تستخدم Pandas؟
- بسيطة وقوية: سهلة التعلم ولكنها قوية بما يكفي للتعامل مع المهام المعقدة.
- أداء عالي: مبنية على NumPy، مما يجعلها سريعة جدًا في العمليات الحسابية.
- مرونة: تتعامل مع أنواع مختلفة من البيانات وهياكل غير منتظمة.
- تكامل: تتكامل بشكل ممتاز مع مكتبات علم البيانات الأخرى مثل Matplotlib (للتصور) و Scikit-learn (لتعلم الآلة).
الخلاصة
مكتبة Pandas هي أداة لا غنى عنها لأي شخص يعمل مع البيانات في بايثون. من خلال هياكل البيانات البديهية مثل DataFrame ومجموعة واسعة من الوظائف، تجعل Pandas عملية استكشاف وتنظيف ومعالجة وتحليل البيانات أكثر كفاءة ومتعة.