# מערך שיעור: סינון ומיון ב-Pandas📋 מערך מרצה

משך: 1.5 שעות אקדמיות (68 דקות).

מטרת השיעור: הסטודנטים ישלטו ב-Boolean Indexing ו-sort_values, כולל המלכודת של &/| מול and/or.

בסוף השיעור הסטודנטים צריכים: לסנן DataFrame עם תנאי בודד ומשולב, למיין לפי כמה עמודות, ולהסביר למה &/| נדרשים במקום and/or.

דגש קריטי: הדגימו את שגיאת `and`/`or` בפועל — זו השגיאה הכי נפוצה בנושא הזה, וחשוב שסטודנטים "יתקלו" בה בסביבה מבוקרת.

---

## מהלך השיעור

| חלק בשיעור | משך | הערות ודגשים |
| --- | --- | --- |
| פתיחה וחיבור | 5 דקות | הזכירו Where ב-LINQ — "אותו רעיון, תחביר שונה" |
| הרעיון: Boolean Indexing | 20 דקות | df[condition], הדגישו Series של True/False |
| הבעיה: and/or נכשל | 10 דקות | הדגימו שגיאה בפועל |
| &/| נכון | 15 דקות | עם סוגריים, שילוב תנאים |
| sort_values | 13 דקות | עמודה בודדת ואז רב-שכבתי |
| תרגול מודרך | 5 דקות | תרגיל 1+2 |

---

## דגשים להעברת השיעור

- הדגמת שגיאת `and`/`or` היא ליבת השיעור — אל תסתפקו בהסבר "צריך & ולא and", תנו לסטודנטים לראות את הודעת השגיאה עצמה ("truth value of a Series is ambiguous") ולהבין למה היא קורית.
- קישרו במפורש ל-`Where` מיחידת LINQ (C#) — "זה אותו רעיון בדיוק שכבר תרגלתם, רק תחביר אחר לגמרי".
- מיון רב-שכבתי (`sort_values(["A","B"])`) שווה דוגמה משלו עם נתונים שממחישים את זה בבירור (למשל שתי שורות עם אותו ClassName, ציונים שונים).

---

## מושגים

**Boolean Indexing** — סינון עם מסכת True/False.
**`&`/`|`** — "וגם"/"או" ל-Series, לא and/or.
**`sort_values`** — מיון, עם ascending לכיוון.

---

## תרגיל חשיבה

**שאלת פתיחה:** "אם תכתבו `df[df['Age'] >= 18 and df['Score'] > 80]` (עם `and` רגיל) — מה אתם חושבים יקרה?"

**מהלך:** תנו לסטודנטים לנחש — רובם יצפו שזה "פשוט יעבוד". הפתיעו אותם עם השגיאה בפועל, והסבירו: `and` בפייתון בודק אמת/שקר על **ערך בודד**, לא Series שלמה — פייתון לא יודע "להחליט" אם Series שלמה היא אמת או שקר (כי יש בה גם True וגם False בו-זמנית), ולכן זורק שגיאה.

**מה המרצה מראה בסוף:** הריצו את שתי הגרסאות זו אחרי זו — עם `and` (שגיאה) ואז עם `&` בסוגריים נכונים (עובד) — על אותם תנאים בדיוק. ההבדל הישיר בין כישלון להצלחה מבסס את הכלל הרבה יותר מהסבר תיאורטי.
