ברוכים הבאים ליחידה "עבודה עם מקורות נתונים חיצוניים" בקורס "תכנות וניתוח נתונים בשפת פייתון". בעולם הנתונים המודרני, היכולת לאסוף, לקרוא ולעבד מידע ממגוון מקורות חיצוניים היא מיומנות חיונית. יחידה זו תצייד אתכם בכלים הדרושים כדי להתמודד עם אתגר זה, החל מקריאת קבצים נפוצים כמו CSV, Excel ו-JSON, דרך אינטראקציה עם ממשקי API, ועד ליסודות העבודה עם בסיסי נתונים. הבנה מעמיקה של נושאים אלו תאפשר לכם לבנות יישומים חזקים ויעילים לניתוח נתונים, ותכין אתכם היטב לשאלות מעשיות ותיאורטיות במבחן.
מבוא לעבודה עם נתונים חיצוניים בפייתון
נתונים בעולם האמיתי מגיעים לעיתים רחוקות בפורמט אחיד ונקי. הם מפוזרים על פני קבצים שונים, שירותי אינטרנט, ומאגרי מידע. על כן, היכולת של מתכנת פייתון לגשת למקורות אלו היא אבן יסוד בכל פרויקט ניתוח נתונים או פיתוח יישומים. פייתון, עם המערכת האקולוגית העשירה שלה של ספריות, מספקת כלים עוצמתיים לטיפול במגוון רחב של פורמטים וממשקים. הבנה זו קריטית לא רק לביצוע משימות, אלא גם לתכנון ארכיטקטורת נתונים נכונה.
קריאת קבצים נפוצים: CSV, Excel ו-JSON
שלושה מפורמטי הקבצים הנפוצים ביותר לעבודה עם נתונים הם CSV, Excel ו-JSON. לכל אחד מהם מבנה ושימושים אופייניים, ופייתון מציעה דרכים יעילות לקרוא ולנתח אותם. במבחן, צפו לשאלות שידרשו מכם לבחור את הפורמט המתאים לתרחיש נתון, או לכתוב קוד לקריאת נתונים מפורמט ספציפי.
קריאת קבצי CSV
קובצי CSV (Comma Separated Values) הם פורמט טקסט פשוט לאחסון נתונים טבלאיים, כאשר כל שורה מייצגת רשומה, והערכים בכל שורה מופרדים באמצעות פסיקים (או מפריד אחר).
- ניתן לקרוא באמצעות מודול
csvהמובנה בפייתון. - לרוב, עדיף להשתמש בספריית
pandasובפונקציהpd.read_csv()לקריאה מהירה ויעילה יותר, המאפשרת גם טיפול קל בנתונים חסרים וסוגי נתונים.
קריאת קבצי Excel
קובצי Excel (בפורמטים .xls או .xlsx) הם פורמט נפוץ לאחסון נתונים טבלאיים מורכבים, הכוללים גיליונות מרובים, עיצוב, נוסחאות ועוד.
- ספריית
pandasמציעה את הפונקציהpd.read_excel(), שהיא הדרך המומלצת לקרוא קבצי Excel בפייתון. היא דורשת התקנת ספריות עזר כמוopenpyxlאוxlrd. - מאפשרת בחירת גיליון ספציפי לקריאה, דילוג על שורות ועוד.
קריאת קבצי JSON
JSON (JavaScript Object Notation) הוא פורמט קל משקל להחלפת נתונים, קריא לאדם וקל לניתוח על ידי מכונות. הוא מבוסס על מבנה של זוגות מפתח-ערך ואוספים (מערכים).
- מודול
jsonהמובנה בפייתון מאפשר לטעון מחרוזות או קבצי JSON לאובייקטי פייתון (מילונים ורשימות) באמצעותjson.load()ו-json.loads(). pd.read_json()מ-pandasיכולה גם היא לקרוא קבצי JSON, במיוחד כאשר הנתונים מובנים בצורה טבלאית.
CSV
פורמט טקסט פשוט, קל לקריאה וכתיבה. אידיאלי לנתונים טבלאיים בסיסיים ללא מבנה היררכי מורכב. חסרונות: אין תמיכה בסוגי נתונים מובנים, קשה לטפל בנתונים מורכבים.
Excel
פורמט עשיר עם תמיכה בגיליונות מרובים, עיצוב, נוסחאות. נפוץ מאוד בסביבות עסקיות. חסרונות: קובץ בינארי, דורש ספריות חיצוניות, יכול להיות כבד. לא אידיאלי לאוטומציה בקנה מידה גדול.
JSON
פורמט היררכי, גמיש מאוד, אידיאלי להעברת נתונים בין שירותי אינטרנט (APIs). תומך במבנים מורכבים של מילונים ורשימות. חסרונות: פחות אינטואיטיבי לנתונים טבלאיים פשוטים מאוד.
ממשקי API וספריית requests
ממשקי API (Application Programming Interfaces) מאפשרים לתוכנות שונות לתקשר זו עם זו. ממשקי Web API, ובפרט RESTful APIs, הם הדרך הנפוצה ביותר לגשת לנתונים ושירותים דרך האינטרנט. ספריית requests של פייתון היא הסטנדרט בפועל לביצוע בקשות HTTP. במבחן, צפו לשאלות הדורשות כתיבת קוד לבקשת API, ניתוח תגובה, וטיפול בשגיאות.
ביצוע בקשות GET
בקשות GET משמשות לאחזור נתונים משרת.
requests.get(url): שולחת בקשת GET לכתובת ה-URL הנתונה.- התגובה (response) מכילה את הנתונים, קוד סטטוס (לדוגמה, 200 OK), וכותרות.
- ניתן לגשת לתוכן ה-JSON של התגובה באמצעות
response.json().
טיפול בפרמטרים ואימות
- ניתן להעביר פרמטרים לבקשה באמצעות מילון
paramsב-requests.get(). - עבור API הדורשים אימות, ניתן להשתמש בשיטות שונות כמו מפתחות API (API Keys) או אסימוני OAuth, לרוב על ידי העברתם בכותרות (headers) או כפרמטרים.
יסודות עבודה עם בסיסי נתונים (SQL)
בסיסי נתונים הם עמוד השדרה של יישומים רבים, ומספקים דרך מאורגנת ויעילה לאחסון, ניהול ושליפה של כמויות גדולות של נתונים. SQL (Structured Query Language) היא השפה הסטנדרטית לתקשורת עם בסיסי נתונים יחסיים. הבנה בסיסית של SQL היא הכרחית לכל מדען נתונים או מתכנת. במבחן, צפו לשאלות הדורשות כתיבת שאילתות SQL בסיסיות.
חיבור לבסיס נתונים וביצוע שאילתות
- פייתון יכולה להתחבר למגוון רחב של בסיסי נתונים באמצעות מודולים ייעודיים (לדוגמה,
sqlite3עבור SQLite,psycopg2עבור PostgreSQL). - התהליך כולל יצירת חיבור, יצירת אובייקט "סמן" (cursor), ביצוע שאילתות SQL באמצעות
cursor.execute(), ושליפת התוצאות באמצעותcursor.fetchone()אוcursor.fetchall().
פקודות SQL בסיסיות
- SELECT: משמשת לשליפת נתונים מטבלה אחת או יותר.
SELECT column1, column2 FROM table_name WHERE condition; - FROM: מציינת מאיזו טבלה לשלוף נתונים.
- WHERE: מסננת רשומות על בסיס תנאי מסוים.
- מצאתם טעות או שחסר משהו?