כיצד להשתמש בהצהרת המקרה של Pandas?
ניתן ליצור הצהרות מקרה בכמה דרכים. הפונקציה NumPy where(), שמשתמשת בתחביר הבסיסי הבא, היא הדרך הפשוטה ביותר לבנות הצהרת מקרה ב-Pandas DataFrame:
df [ 'שם עמודה' ] = np.where ( מַצָב 1 , 'ערך1',np.where ( מַצָב שתיים , 'ערך2',
np.where ( מַצָב 3 , 'value3', 'value4' ) ) )
ההצהרה לעיל תבדוק כל תנאי עבור הערך, ואם התנאי מתקיים, תיצור את הפלט או תחזיר את הערך מול התנאי.
דוגמה מס' 1: הצהרת מקרה של Pandas באמצעות הפונקציה where()
בואו ניצור תחילה מסגרת נתונים כדי שנוכל להשתמש בהצהרת המקרה שלנו. כדי ליצור את מסגרת הנתונים, תחילה נייבא את מודולי numpy ו-pandas כדי שנוכל להשתמש בפונקציונליות שלהם. ה-pd.Dataframe() ישמש ליצירת מסגרת הנתונים שלנו.
יצרנו את מסגרת הנתונים 'df'. מילון Python מועבר בתוך pd.DataFrame() מתפקד כארגומנט עם מפתחות וערכים. נשתמש בפונקציה print() כדי לראות את מסגרת הנתונים שלנו.
במסגרת הנתונים 'df' יש לנו שתי עמודות 'שם' ו'סימנים' עם ערכים ['רון', 'טים', 'אנה', 'ג'ק', 'רוב', 'לוסי'] ו-[4, 6 , 8, 6, 9,10] בהתאמה. נניח שהשם הזה הוא העמודות המאחסנות את שמות התלמידים והעמודה 'סימון' מאחסנת את הציון של מבחן אחרון כלשהו. כעת, נכתוב הצהרת מקרה שמוסיפה עמודה חדשה בשם 'הערות' שהערכים שלה מבוססים על הערכים שצוינו על ידינו, עבור כל תנאי.
השיטה 'numpy.where()' מספקת את מדדי האלמנטים ממערך קלט, עמודה או רשימה העומדים בתנאי שצוין. במקרה המתג לעיל, הפונקציה np.where() בודקת כל רכיב בעמודות 'סימנים'. אם הערך שווה ל-5 או קטן מ-5, הוא יחזיר 'כשל' כפלט. אם הערך קטן או שווה ל-7, הוא יחזור משביע רצון, ואם הערך קטן או שווה ל-9, הוא יחזיר 'נהדר'. אם אין כאלה, התוצאה תהיה מצוינת.
כפי שניתן לשים לב, העמודה החדשה 'הערות' נוצרת במסגרת הנתונים 'df' שלנו, מאחסנת את הערכים המוחזרים על ידי הצהרת המקרה למעלה.
דוגמה מס' 2:
בואו ננסה שוב את הצהרת המקרה לעיל עם מסגרת נתונים אחרת. נניח שעלינו לדרג שחקנים על סמך סך המטרות שלהם בטורניר הכדורגל הקודם. אז בואו ניצור מסגרת נתונים לאחסון רשומות של שחקני כדורגל.
העברנו מילון עם המפתחות 'שם' ו'מטרות' בתוך הפונקציה pd.DataFrame() ליצירת מסגרת הנתונים שלנו. כדי להדפיס את מסגרת הנתונים שלנו, נשתמש בפונקציית ההדפסה.
כפי שניתן לראות במסגרת הנתונים לעיל, יש לנו שתי עמודות: 'שם' ו'מטרות'. בשם העמודה, יש לנו את שמות השחקנים ['ג'ון', 'מרטי', 'קליי', 'ניק', 'מייק', 'אלכס', 'טום', 'רוקי']. בשערים ב'עמודה', יש לנו את המספר הכולל של השערים שהבקיע כל שחקן בטורניר הקודם. כעת נשתמש בהצהרת המקרה שלנו כדי לדרג את השחקנים הללו על סמך השערים שהם כבשו.
המקרה לעיל נוצר באמצעות הפונקציה where() . בתוך המארז, פונקציית ההצהרה בודקת כל רכיב בעמודות 'סימנים' מול התנאים. אם הערך בעמודה 'מטרות' שווה או קטן מ-5, הוא יחזיר 'C'. אם הערך בעמודה 'מטרות' שווה או קטן מ-9, הוא יחזיר 'B'. זה יחזיר 'A' אם הערך בעמודה 'מטרות' שווה ל-10 או גדול מ-10. הערכים המוחזרים על ידי ההצהרה יאוחסנו בעמודה החדשה 'דירוג'. בואו נדפיס את ה-'df' כדי לראות את התוצאות.
העמודה החדשה 'דירוג' נוצרה בהצלחה באמצעות הסקריפט שלמעלה.
דוגמה מס' 3: Pandas if-else הצהרת שימוש בפונקציה apply()
ציר השורה או העמודה של מסגרת הנתונים משמש על ידי שיטת application() כדי ליישם פונקציה. אנחנו יכולים ליצור פונקציה מוגדרת משלנו ולהשתמש בה במסגרת הנתונים שלנו בפנדות. זה יכלול תנאי אם-אחר. בואו ניצור תחילה את מסגרת הנתונים שלנו, ואז ניצור פונקציה שבה נשתמש במשפט if-else כדי ליצור את התוצאה. כדי ליצור את מסגרת הנתונים שלנו, נייבא תחילה את המודול של הפנדות, ואז נעביר מילון בתוך שיטת pd.DataFrame() .
כפי שניתן לראות, מסגרת הנתונים שלנו מורכבת משתי עמודות 'A' המאחסנות ערכים מספריים [23, 35, 64, 74, 85] ו- 'B' עם ערכים [45, 34, 61, 89, 27]. כעת ניצור פונקציה שתקבע איזה ערך גדול יותר בין שתי העמודות בכל שורה של מסגרת הנתונים שלנו.
אתה יכול להשתמש בפונקציית Python lambda 'פנדות. DataFrame.apply()' כדי להפעיל ביטוי. ב-Python, פונקציית lambda היא פונקציה אנונימית קומפקטית שמקבלת כל מספר של ארגומנטים ומבצעת ביטוי. בסקריפט למעלה, יצרנו הצהרת תנאי שתשווה את הערך של שתי העמודות ותשמור את התוצאה בעמודת 'השוואה' החדשה. אם הערך של עמודה 'A' קטן מהערך של עמודה 'B', הוא יחזיר את 'B גדול יותר'. אם התנאי לא מתקיים הוא יחזיר 'A גדול יותר'.
דוגמה מס' 4:
בואו ננסה דוגמה נוספת באמצעות הצהרת if-else בתוך הפונקציה apply() עם מסגרת נתונים אחרת.
נניח שמסגרת הנתונים שלנו מאחסנת רשומות של עובדים של חברה כלשהי. העמודה 'emp' מאחסנת את שמות העובדים ['פרנקי', 'הארי', 'לוק', 'פיטר', 'אנדרו'], ואילו העמודה 'שכר' מאחסנת את המשכורות של כל עובד [1350, 1000, 900 , 1200, 980] במסגרת הנתונים 'df'. כעת ניצור את הצהרת if-else שלנו בשיטת application() .
התנאי הנ'ל יבדוק עבור כל ערך בעמודה 'שכר' ויוסיף 200 למשכורות של עובדים כאשר ערך השכר קטן או שווה ל-1000. שמרנו את הערכים שהוחזרו מהפונקציה apply() בעמודה החדשה ' תוֹסֶפֶת'. בואו לראות את התוצאות מהסקריפט שלמעלה.
כפי שניתן לראות, הפונקציה הוסיפה בהצלחה 200 לערכים שהיו פחות או שווים ל-100. הערכים שהיו גדולים מ-1000 נותרו ללא שינוי.
סיכום:
במדריך זה ראינו שכאשר התנאי מתקיים, הצהרה מסוג זה, הנקראת הצהרת מקרה, מחזירה ערך. ראינו כיצד ניתן ליצור הצהרת מקרה לביצוע פעולה או משימה נדרשת. במדריך זה, השתמשנו בפונקציה np.where() ובפונקציה application() כדי ליצור הצהרות מקרה. יישמנו כמה דוגמאות כדי ללמד אותך כיצד להשתמש בהצהרות מקרה של pandas באמצעות הפונקציה where() וכיצד להשתמש בפונקציה apply() כדי ליצור הצהרות מקרה.