כמנתח נתונים, לעתים קרובות תתמודד עם הצורך לשלב מערכי נתונים מרובים. תצטרך לעשות זאת כדי להשלים את הניתוח שלך ולהגיע למסקנה עבור העסק/בעלי העניין שלך.
לעתים קרובות זה מאתגר לייצג נתונים כאשר הם מאוחסנים בטבלאות שונות. בנסיבות כאלה, הצטרפות מוכיחות את ערכן, ללא קשר לשפת התכנות עליה אתה עובד.
חיבורי Python הם כמו חיבורי SQL: הם משלבים מערכי נתונים על ידי התאמת השורות שלהם באינדקס משותף.
צור שתי מסגרות נתונים לעיון
כדי לעקוב אחר הדוגמאות במדריך זה, אתה יכול ליצור שני DataFrames לדוגמה. השתמש בקוד הבא כדי ליצור את ה-DataFrame הראשון, המכיל מזהה, שם פרטי ושם משפחה.
יְבוּא פנדות כפי ש pd
a = pd. DataFrame({"תְעוּדַת זֶהוּת": ["001", "002", "003", "004", "005"],
"Fname": ["רון", "ג'ון", "הלן", "ג'ני", "קני"],
"Lname": ["קית'", "הארלי", "נַפָּח", "קר-היסלופ", "סַפָּר"]})
הדפס(א)
לשלב הראשון, ייבא את ה פנדות סִפְרִיָה. לאחר מכן תוכל להשתמש במשתנה, א, כדי לאחסן את התוצאה מבנאי DataFrame. העבר לבנאי מילון המכיל את הערכים הדרושים שלך.
לבסוף, הצג את התוכן של ערך DataFrame עם פונקציית ההדפסה, כדי לבדוק שהכל נראה כפי שהיית מצפה.
באופן דומה, אתה יכול ליצור DataFrame אחר, ב, המכיל מזהה וערכי שכר.
b = pd. DataFrame({"תְעוּדַת זֶהוּת": ["001", "002", "003", "004", "005"],
"שכר": [100000, 700000, 80000, 904750, 604772]})
הדפס(ב)
אתה יכול לבדוק את הפלט בקונסולה או ב-IDE. זה אמור לאשר את התוכן של DataFrames שלך:
במה שונים הצטרפות מפונקציית המיזוג ב-Python?
ספריית הפנדות היא אחת הספריות העיקריות שבהן תוכל להשתמש כדי לתפעל את DataFrames. מכיוון ש-DataFrames מכילים מערכי נתונים מרובים, פונקציות שונות זמינות ב-Python כדי להצטרף אליהם.
Python מציעה את פונקציות ההצטרפות והמיזוג, בין רבות אחרות, שבהן אתה יכול להשתמש כדי לשלב DataFrames. יש הבדל בולט בין שתי הפונקציות הללו, שעליך לזכור לפני השימוש בשתיהן.
הפונקציה join מצטרפת לשתי DataFrames על סמך ערכי האינדקס שלהם. ה פונקציית המיזוג משלבת DataFrames בהתבסס על ערכי האינדקס והעמודות.
מה אתה צריך לדעת על Joins ב- Python?
לפני שנדון בסוגי ההצטרפות הזמינים, הנה כמה דברים שחשוב לשים לב אליהם:
- חיבורי SQL הם אחת הפונקציות הבסיסיות ביותר והם די דומים להצטרפות של Python.
- כדי להצטרף ל-DataFrames, אתה יכול להשתמש ב- פנדות. DataFrame.join() שיטה.
- צירוף ברירת המחדל מבצע צירוף שמאלי, בעוד שפונקציית המיזוג מבצעת צירוף פנימי.
תחביר ברירת המחדל עבור צירוף Python הוא כדלקמן:
DataFrame.join (אחר, on=None, how='שמאל/ימין/פנימי/חיצוני', lsuffix='', rsuffix='',
מיון=שֶׁקֶר)
הפעל את שיטת ה-join ב-DataFrame הראשון והעביר את ה-DataFrame השני כפרמטר הראשון שלו, אַחֵר. שאר הטיעונים הם:
- עַל, אשר נותן שם לאינדקס להצטרף אליו, אם יש יותר מאחד.
- אֵיך, המגדיר את סוג החיבור, כולל פנימי, חיצוני, שמאל וימין.
- סיומת, המגדיר את מחרוזת הסיומת השמאלית של שם העמודה שלך.
- סיומת r, המגדיר את מחרוזת הסיומת הימנית של שם העמודה שלך.
- סוג, שהוא ערך בוליאני המציין אם למיין את ה-DataFrame שנוצר.
למד להשתמש בסוגי החיבורים השונים ב-Python
לפייתון יש כמה אפשרויות הצטרפות, אותן תוכל לממש, בהתאם לצורך של השעה. להלן סוגי ההצטרפות:
1. שמאל הצטרף
החיבור השמאלי שומר על ערכי ה-DataFrame הראשון ללא פגע תוך הבאת הערכים התואמים מהשני. לדוגמה, אם אתה רוצה להביא את הערכים התואמים מ ב, אתה יכול להגדיר את זה באופן הבא:
c = a.join (b, how="שמאלה", lsuffix = "_שמאלה", rsuffix = "_ימין", מיון = נכון)
הדפס(ג)
כאשר השאילתה מופעלת, הפלט מכיל את הפניות העמודות הבאות:
- ID_left
- Fname
- Lname
- ID_right
- שכר
צירוף זה מושך את שלוש העמודות הראשונות מה-DataFrame הראשון, ואת שתי העמודות האחרונות מה-DataFrame השני. זה השתמש ב סיומת ו סיומת r ערכים כדי לשנות את שמות עמודות המזהה משני מערכי הנתונים, כדי להבטיח ששמות השדות המתקבלים יהיו ייחודיים.
הפלט הוא כדלקמן:
2. נכון להצטרף
החיבור הימני שומר על ערכי ה-DataFrame השני ללא פגע, תוך הבאת הערכים התואמים מהטבלה הראשונה. לדוגמה, אם אתה רוצה להביא את הערכים התואמים מ א, אתה יכול להגדיר את זה באופן הבא:
c = b.join (a, how="ימין", lsuffix = "_ימין", rsuffix = "_שמאלה", מיון = נכון)
הדפס(ג)
הפלט הוא כדלקמן:
אם תבדוק את הקוד, יש כמה שינויים ברורים. לדוגמה, התוצאה כוללת את העמודות של ה-DataFrame השני לפני אלו מה-DataFrame הראשון.
כדאי להשתמש בערך של ימין בשביל ה אֵיך טיעון לציון צירוף זכות. כמו כן, שים לב כיצד תוכל להחליף את סיומת ו סיומת r ערכים שישקפו את אופי ההצטרפות הנכונה.
בחיבורים הרגילים שלך, אתה עלול למצוא את עצמך משתמש בחיבורים שמאלה, פנימית וחיצונית בתדירות גבוהה יותר, בהשוואה לחיבור הימני. עם זאת, השימוש תלוי לחלוטין בדרישות הנתונים שלך.
3. הצטרפות פנימית
צירוף פנימי מספק את הערכים התואמים משני ה-DataFrames. מכיוון שצירופים משתמשים במספרי האינדקס כדי להתאים שורות, צירוף פנימי מחזיר רק שורות שמתאימות. להמחשה זו, הבה נשתמש בשתי DataFrames הבאות:
a = pd. DataFrame({"תְעוּדַת זֶהוּת": ["001", "002", "003", "004", "005", "006", "007"],
"Fname": ["רון", "ג'ון", "הלן", "ג'ני", "קני", "דריל", "קאתי"],
"Lname": ["קית'", "הארלי", "נַפָּח", "קר-היסלופ", "סַפָּר", "הופר", "לְקַווֹת"]})
b = pd. DataFrame({"תְעוּדַת זֶהוּת": ["001", "002", "003", "004", "005"],
"שכר": [100000, 700000, 80000, 904750, 604772]})
הדפס(א)
הדפס(ב)
הפלט הוא כדלקמן:
אתה יכול להשתמש בחיבור פנימי, באופן הבא:
c = a.join (b, lsuffix="_שמאלה", rsuffix="_ימין", איך='פְּנִימִי')
הדפס(ג)
הפלט המתקבל מכיל רק שורות הקיימות בשני DataFrames הקלט:
4. חיבור חיצוני
צירוף חיצוני מחזיר את כל הערכים משני ה-DataFrames. עבור שורות ללא ערכים תואמים, הוא מייצר ערך ריק על התאים הבודדים.
באמצעות אותה DataFrame כמו לעיל, הנה הקוד לחיבור חיצוני:
c = a.join (b, lsuffix="_שמאלה", rsuffix="_ימין", איך='חִיצוֹנִי')
הדפס(ג)
שימוש ב-Joins ב-Python
הצטרפות, בדומה לפונקציות המקבילות שלהן, מיזוג וחיבור, מציעות הרבה יותר מפונקציונליות הצטרפות פשוטה. בהתחשב בסדרת האפשרויות והפונקציות שלו, אתה יכול לבחור את האפשרויות העונות על הדרישות שלך.
אתה יכול למיין את מערכי הנתונים המתקבלים בקלות יחסית, עם או בלי פונקציית ה-join, עם האפשרויות הגמישות ש-Python מציעה.