logo

כיצד לשלב שני Dataframe ב-Python - Pandas

פנדות

Pandas היא ספרייה מובנית ב- Python המשמשת לעבודה עם נתונים יחסיים בשפת התכנות Python. יש לו הרבה פונקציות ומבני נתונים המסייעים בפעולות של נתונים יחסיים.

אם הנתונים מאוחסנים בצורה של שורות ועמודות או נתונים דו מימדיים נקראים בדרך כלל dataframes בפנדות.

אם יש לנו שתי מסגרות נתונים, אז בעזרת הפנדות, נוכל לשלב אותן או למזג אותן למסגרת נתונים אחת. פנדות מספקות את ההיגיון המוגדר לשילוב הנתונים של שתי מסגרות נתונים שונות, כמו גם היגיון להשוואה ביניהם.

1. שימוש בפונקציה concat()

ב-python, נוכל לשרשר את שתי מסגרות הנתונים בעזרת הפונקציה concat() של Pandas. אנו יכולים לשרשר את הנתונים לפי שורה או לפי עמודה. פונקציה זו ממזגת את הנתונים על ציר אחד (שורה או עמודה) ומבצעת את הלוגיקה שנקבעה על ציר אחר (אינדקס אחר).

דוגמא:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'DEF', 'GHI'], 'Marks':[65,69,96,89]}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'Name': ['XYZ', 'TUV', 'MNO', 'JKL'], 'Marks':[56,96,69,98]}) frames = [dataFrame1, dataFrame2] result = pd.concat(frames) display(result) 

תְפוּקָה:

כיצד לשלב שני Dataframe ב-Python - Pandas

הֶסבֵּר:

בקוד לעיל, ייבאנו תחילה את ספריית Pandas בקובץ. לאחר מכן, יצרנו את שתי מסגרות הנתונים כאשר כל מסגרת נתונים מכילה שלוש עמודות וארבע שורות. לאחר מכן השתמשנו בפונקציית concat, שמשרשרת את שתי מסגרות הנתונים הללו לפי שורה, ועם פונקציית התצוגה, הדפסנו זאת על המסך.

2. שימוש בג'וינטים בפנדות

הבנו את הרעיון של חיבורים במסד הנתונים שבו אנו מצטרפים לשתי הטבלאות על סמך תכונה משותפת כלשהי. אותה שיטה ישימה בשרשור של מסגרות נתונים. בשיטה הפשוטה concat() מיזגנו את כל השורות אחת על השנייה ויצרנו את ה-dataframe החדש. ב-join, אנו מגדירים איזה סוג של הצטרפות נרצה לבצע על השולחן, בין אם מדובר בהצטרפות פנימית ובין אם מדובר בהצטרפות חיצונית. כל סוג של הצטרפות, צירוף פנימי (צומת) או צירוף חיצוני (איחוד), יוגדר בתכונת הצטרפות.

דוגמא:

char ו-int java
 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=1, join='inner') display(result) 

תְפוּקָה:

כיצד לשלב שני Dataframe ב-Python - Pandas

הֶסבֵּר:

בקוד שלמעלה, יש לנו שני דראפים ששניהם מכילים שתי עמודות וארבע שורות. לשתי ה-dataframe יש שמות עמודות שונים, ובפונקציה concat() השתמשנו ב-inner join, שלוקח את החלק ה-intersection.

בתכונת ציר, אתחלנו ערך אחד, אז קיבלנו את כל הנתונים.

דוגמא:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'],'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

תְפוּקָה:

פיקוד chown
כיצד לשלב שני Dataframe ב-Python - Pandas

מכיוון שאין תכונה משותפת והחיבור הפנימי הוחל, אז קיבלנו מסגרת נתונים ריקה כפלט. אם יש תכונה משותפת בשתי מסגרות הנתונים:

דוגמא:

 import pandas as pd from IPython.display import display dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'Name': ['ABC', 'PQR', 'TUV', 'JKL']}) dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['NOIDA', 'JAIPUR', 'MANALI', 'DELHI'], 'Age': ['11', '10', '12', '17']}) # the default behaviour is join='outer' # inner join result = pd.concat([dataFrame1, dataFrame2], axis=0, join='inner') display(result) 

תְפוּקָה:

כיצד לשלב שני Dataframe ב-Python - Pandas

הֶסבֵּר:

בקוד שלמעלה, יש לנו תכונה אחת, 'id', שהיא נפוצה ולכן מסגרת הנתונים נוצרת על סמך תכונות נפוצות בלבד.

3. שימוש בשיטת append()

במקום שיטת concat() נוכל להשתמש בשיטת append() . שיטת append() זו מיושמת על אחת ממסגרות הנתונים.

דוגמא:

 import pandas as pd from IPython.display import display # First DataFrame dataFrame1 = pd.DataFrame({'id': ['A1', 'A2', 'A3', 'A4'], 'City': ['JAIPUR', 'MANALI', 'NOIDA', 'LUCKNOW']}) # Second DataFrame dataFrame2 = pd.DataFrame({'id': ['B1', 'B2', 'B3', 'B4'], 'City': ['MUMBAI', 'UDAIPUR', 'RISHIKESH', 'KASHMIR']}) # append method result = dataFrame1.append(dataFrame2) display(result) 

תְפוּקָה:

כיצד לשלב שני Dataframe ב-Python - Pandas

הֶסבֵּר:

בקוד לעיל, מיזגנו שתי מסגרות נתונים בשיטת append.