Pandas
Pandas for Tabular Data
التعامل مع البيانات الجدولية: DataFrame والاختيار والتصفية والتجميع والقيم المفقودة.
Series وDataFrame
import pandas as pd
df = pd.DataFrame({
"name": ["Ali", "Mona", "Omar", "Huda"],
"age": [23, 31, None, 27],
"track": ["ML", "DL", "ML", "NLP"],
"score": [78, 92, 65, 88],
})
df.head()
df.info() # الأنواع والقيم غير المفقودة
df.describe() # إحصاءات وصفية للأعمدة العدديةاختيار البيانات
df["score"] # Series
df[["name", "score"]] # DataFrame
df.loc[0, "name"] # بالتسمية
df.iloc[0:2, 1:3] # بالموقع
df[df["score"] >= 80] # تصفية شرطية
df.query("track == 'ML' and score > 60")القيم المفقودة
df.isna().sum() # عدد القيم المفقودة لكل عمود
df["age"] = df["age"].fillna(df["age"].median())
df_clean = df.dropna()قرار حذف القيم المفقودة أو تعويضها يؤثر في النتائج، ويجب حساب قيم التعويض من بيانات التدريب فقط عند بناء نموذج لتجنب تسرب البيانات (data leakage).
أعمدة جديدة وتحويلات
df["passed"] = df["score"] >= 70
df["track"] = df["track"].astype("category")
df.sort_values("score", ascending=False)التجميع
df.groupby("track")["score"].agg(["mean", "count"])يقسم البيانات حسب المسار، ويحسب المتوسط والعدد لكل مجموعة.
الدمج
tracks = pd.DataFrame({"track": ["ML", "DL", "NLP"],
"hours": [40, 50, 45]})
merged = df.merge(tracks, on="track", how="left")نصيحة أداء
تجنب المرور على الصفوف بـ iterrows في البيانات الكبيرة، واستخدم العمليات على الأعمدة كاملة لأنها متجهة وأسرع بكثير.
مصطلحات الدرس
- إطار البيانات DataFrame
- جدول ثنائي الأبعاد له أعمدة مسماة وفهرس للصفوف، وقد تختلف أنواع الأعمدة.
- التجميع Group By
- تقسيم البيانات حسب قيم عمود ثم تطبيق دالة تلخيص على كل مجموعة ودمج النتائج.
- السلسلة Series
- مصفوفة أحادية البعد مع فهرس، وتمثل عموداً واحداً من DataFrame.
الملخص
pandas مكتبة لتحليل البيانات الجدولية تقدم بنيتين أساسيتين: Series للعمود الواحد وDataFrame للجدول. تتيح قراءة البيانات من مصادر متعددة، واختيار الصفوف والأعمدة بـ loc وiloc، والتصفية الشرطية، ومعالجة القيم المفقودة، والتجميع بـ groupby، ودمج الجداول.
أسئلة مراجعة
-
ما الفرق بين loc وiloc؟
loc يختار بالتسميات (أسماء الصفوف والأعمدة)، وiloc يختار بالمواقع العددية.
-
كيف تعرف عدد القيم المفقودة في كل عمود؟
df.isna().sum().
المصادر والمراجع
إكمال الدرس
أكملت كل دروس المسار! يمكنك الآن طلب شهادة إكمال المسار.
اطلب الشهادة