Menu
Coddy logo textTech

קיבוץ נתונים ואגרגציה

שיעור 15 מתוך 19 בקורס ניתוח נתונים עם Pandas של Coddy.

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

בשיעור הקודם חישבנו סטטיסטיקות לגבי קבוצה מסוימת, אבל חישוב סטטיסטיקות עבור כל הקבוצות עשוי להיות קשה ללא כלים נוספים. לשם כך, יש לנו את המתודה .groupby():

df.groupby('column_name')

פעולה זו תחזיר אובייקט GroupBy שמקבץ את שורות ה-dataframe לפי הערכים של column_name. אפשר להחיל פונקציות צבירה על אובייקט GroupBy זה כדי לבצע חישובים בתוך הקבוצות האלה.

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

df.groupby('column_name').sum()
df.groupby('column_name').min()
df.groupby('column_name').max()

פעולה זו תחזיר את sum, את min ואת max של כל העמודות המספריות האחרות ב-dataframe המקורי, כשהנתונים מחולקים לפי column_name.

כעת אפשר לחלץ עמודה ספציפית שאותה מנתחים:

df.groupby('column_name').sum()['other_column']
challenge icon

אתגר

קל

קובץ ה-CSV visits.csv מכיל מידע על מספר הביקורים שהתקיימו במיקום מסוים בזמן מסוים.

הנה 5 השורות הראשונות של הקובץ:

location_id,visits,timestamp
8,1771,27498
9,4187,79919
0,4959,54228
6,7721,41588

צרו מילון עם המפתחות הבאים: min, max, mean, std, sum ו-median, וספקו series המתאים לסטטיסטיקות של העמודה visits עבור כל מזהה מיקום.

נסו בעצמכם

# pandas as pd כבר יובא
df = pd.read_csv("./visits.csv")
# כתבו את הקוד שלכם למטה
sum_visits = df.groupby("location_id").sum()["visits"]

res = {
    "min": # מלאו
    "max": # מלאו
    "mean": # מלאו
    "std": # מלאו
    "median": # מלאו
    "sum": sum_visits
}
print(res)

כל השיעורים ביחידה ניתוח נתונים עם Pandas

תרגלו בעצמכם: קומפיילר Python אונליין