קיבוץ נתונים ואגרגציה
שיעור 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']אתגר
קלקובץ ה-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
3מניפולציה של נתונים עם Pandas
החזרת התוצאה המבוקשתסינון נתוניםהוספה ומחיקהשינוי נתוניםשינוי מחרוזותשינויים מותאמים אישיתתרגלו בעצמכם: קומפיילר Python אונליין