On this page
מערך שיעור: Transform — merge, groupby, agg, apply
משך: 2.5 שעות אקדמיות (113 דקות).
מטרת השיעור: הסטודנטים ישלבו DataFrames עם merge ויחשבו סטטיסטיקה לפי קבוצה עם groupby+agg.
בסוף השיעור הסטודנטים צריכים: לשלב שני DataFrames עם merge, לחשב סטטיסטיקה מצטברת עם groupby+agg, ולהשתמש ב-apply כשאין פונקציה מובנית מתאימה.
דגש קריטי: קשרו כל כלי לתחביר מקביל שכבר נלמד (merge↔$lookup/JOIN, groupby+agg↔GroupBy+Sum/Count) — זה הרעיון הפדגוגי המרכזי של השיעור.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | הזכירו $lookup ממונגו, GroupBy מ-LINQ |
| הרעיון: merge | 25 דקות | JOIN בין שני DataFrames, on= |
| הרעיון: groupby (לבד) | 10 דקות | הראו שזה “לא עושה כלום” בלי agg |
| agg | 25 דקות | חישובים מצטברים, כמה חישובים יחד |
| apply | 20 דקות | פונקציה מותאמת, מתי כדאי ומתי לא |
| תרגול מודרך | 28 דקות | תרגיל 1+2 + התחלת פרויקט מסכם |
דגשים להעברת השיעור
- זהו השיעור שבו “כל הפאזל” (JOIN, GroupBy מכל הטכנולוגיות שנלמדו) מתחבר סופית — הדגישו את זה במפורש: “זו הפעם השלישית שאתם לומדים את אותו רעיון, בשפה שלישית”.
- הראו במפורש ש-
groupbyלבד לא “עושה” כלום —df.groupby("X")מודפס נראה כמו Object מוזר, לא טבלה — זה מבלבל מתחילים. applyשווה אזהרת ביצועים מפורשת — לא “הכלי הראשון לנסות”, אלא הפתרון כשאין ברירה.
מושגים
merge — JOIN בין DataFrames לפי מפתח משותף.
groupby — הכנת קיבוץ, לא מחשב לבד.
agg — חישוב מצטבר על קבוצות.
apply — פונקציה מותאמת-אישית על כל שורה/עמודה.
תרגיל חשיבה
שאלת פתיחה: “עד עכשיו למדתם JOIN וקיבוץ ב-3 טכנולוגיות שונות — LINQ (C#), MongoDB Aggregation, ועכשיו Pandas. מה זהה בין כולן, ומה שונה?”
מהלך: תנו לסטודנטים לבנות טבלת השוואה קצרה בעצמם (LINQ: Where/GroupBy; Mongo: $match/$group/$lookup; Pandas: filter/groupby+agg/merge). הובילו לתובנה המרכזית של כל הקורס עד כאן: הבעיות העסקיות (סינון, קיבוץ, שילוב מקורות) חוזרות על עצמן בכל טכנולוגיה — רק התחביר משתנה.
מה המרצה מראה בסוף: הריצו את אותה שאילתה בדיוק (למשל “סכום הזמנות לפי לקוח”) בשלוש הטכנולוגיות זו אחרי זו (אם יש זמן והכנה מראש) — LINQ, Mongo Aggregation, Pandas groupby+agg — והראו שהתוצאה הסופית זהה, רק הדרך שונה.