משך: 2.5 שעות אקדמיות (113 דקות).

מטרת השיעור: הסטודנטים ישלבו DataFrames עם merge ויחשבו סטטיסטיקה לפי קבוצה עם groupby+agg.

בסוף השיעור הסטודנטים צריכים: לשלב שני DataFrames עם merge, לחשב סטטיסטיקה מצטברת עם groupby+agg, ולהשתמש ב-apply כשאין פונקציה מובנית מתאימה.

דגש קריטי: קשרו כל כלי לתחביר מקביל שכבר נלמד (merge↔$lookup/JOIN, groupby+agg↔GroupBy+Sum/Count) — זה הרעיון הפדגוגי המרכזי של השיעור.


מהלך השיעור

חלק בשיעורמשךהערות ודגשים
פתיחה וחיבור5 דקותהזכירו $lookup ממונגו, GroupBy מ-LINQ
הרעיון: merge25 דקותJOIN בין שני DataFrames, on=
הרעיון: groupby (לבד)10 דקותהראו שזה “לא עושה כלום” בלי agg
agg25 דקותחישובים מצטברים, כמה חישובים יחד
apply20 דקותפונקציה מותאמת, מתי כדאי ומתי לא
תרגול מודרך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 — והראו שהתוצאה הסופית זהה, רק הדרך שונה.