On this page
מערך שיעור: Pandas — DataFrame, Series
משך: 2 שעות אקדמיות (90 דקות).
מטרת השיעור: הסטודנטים יתחילו לעבוד עם DataFrame/Series, ויבינו את ההבדל בין iloc ל-loc.
בסוף השיעור הסטודנטים צריכים: לטעון נתונים עם read_csv, לגשת לנתונים עם iloc/loc נכון, ולהשתמש ב-head/info/describe לסקירה ראשונית.
דגש קריטי: זו הפעם הראשונה שסטודנטים כותבים פייתון “אמיתי” (מעבר לConsumer הבסיסי מיחידת NoSQL) — אל תניחו רקע syntax כלל.
מהלך השיעור
| חלק בשיעור | משך | הערות ודגשים |
|---|---|---|
| פתיחה וחיבור | 5 דקות | הזכירו את הConsumer בפייתון מיחידת Kafka — “היום נעמיק בפייתון” |
| syntax בסיסי (אם נדרש) | 15 דקות | dict, list comprehension בקצרה אם הכיתה זקוקה |
| הרעיון: DataFrame | 20 דקות | טבלה בזיכרון, קישרו ל-DbSet |
| read_csv/json | 15 דקות | טעינה ממקורות שונים |
| iloc מול loc | 25 דקות | הדגישו הבדל אחרי סינון/מיון |
| head/info/describe | 10 דקות | שגרת בדיקה ראשונית |
| תרגול מודרך | 10 דקות | תרגיל 1+2 |
דגשים להעברת השיעור
- אם הכיתה חסרת רקע Python כלל, שקלו 10-15 דקות syntax-primer לפני DataFrame עצמו — לא להניח שכולם מכירים dict/list comprehension.
- ההבדל
.iloc/.locהוא מלכודת קלאסית — הדגימו אותה אחרי סינון (לא לפני), כי לפני סינון הם לרוב זהים ומטשטשים את ההבדל. - קישרו DataFrame ל-
DbSet<T>מיחידת EF Core בקצרה — “טבלה בזיכרון, בלי DB אמיתי מאחוריה” — אנלוגיה מהירה שכבר מוכרת.
מושגים
DataFrame — טבלה דו-ממדית בזיכרון.
Series — עמודה בודדת.
.iloc — גישה לפי מיקום מספרי.
.loc — גישה לפי תווית.
תרגיל חשיבה
שאלת פתיחה: “יש לכם DataFrame עם 10 שורות, סיננתם אותו לרק 3 שורות שנשארו (עם אינדקסים מקוריים 2, 5, 8). מה .iloc[0] יחזיר? ומה .loc[0]?”
מהלך: תנו לסטודנטים לחשוב לפני שעונים. התשובה: .iloc[0] מחזיר את השורה הראשונה בתוצאה המסוננת (זו עם אינדקס מקורי 2) — כי iloc הוא תמיד לפי מיקום נוכחי. .loc[0] ינסה למצוא שורה עם תווית 0 בדיוק — וזו לא קיימת יותר בתוצאה המסוננת (האינדקסים 2,5,8 בלבד) — שגיאה!
מה המרצה מראה בסוף: הריצו את התרחיש בדיוק כמו בשאלה — סננו DataFrame, ואז הריצו .iloc[0] (עובד, מחזיר שורה) ו-.loc[0] (שגיאת KeyError אם אינדקס 0 לא בתוצאה) בשידור חי. השגיאה בפועל מבססת את ההבדל טוב יותר מכל הסבר.