נפתרה: מילוי לאחור של פנדות לאחר דגימה עלייה

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

מילוי לאחור בנתוני סדרת זמן

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

ספריית פנדה

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

פתרון: מילוי אחורה בפנדות

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

import pandas as pd
import numpy as np

# Create a sample time series dataset
date_rng = pd.date_range(start='2022-01-01', end='2022-01-10', freq='D')
data = np.random.randint(0, 100, size=(len(date_rng), 1))

df = pd.DataFrame(date_rng, columns=['date'])
df['value'] = data

כעת, כשיש לנו את נתוני המדגם שלנו, נמשיך עם דגימה עלייה ויישום שיטת המילוי לאחור. בדוגמה זו, נעלה את הדגימה מתדירות יומית לתדירות שעתית:

# Upsample the data to hourly frequency
df.set_index('date', inplace=True)
hourly_df = df.resample('H').asfreq()

# Apply the backward fill method to fill missing values
hourly_df.fillna(method='bfill', inplace=True)

בקוד שלמעלה, תחילה הגדרנו את העמודה 'תאריך' כאינדקס ולאחר מכן דגמנו מחדש את הנתונים לתדירות שעתית באמצעות מדגם מחדש () פוּנקצִיָה. ל-DataFrame שהתקבל יש ערכים חסרים בגלל התדירות המוגברת. לאחר מכן השתמשנו ב- fillna() שיטה עם הפרמטר 'bfill' כדי לבצע מילוי לאחור על הערכים החסרים.

הסבר שלב אחר שלב

בואו נפרק את הקוד כדי להבין אותו טוב יותר:

1. ייבאנו לראשונה את ספריות Pandas ו-NumPy:

   import pandas as pd
   import numpy as np
   

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

   date_rng = pd.date_range(start='2022-01-01', end='2022-01-10', freq='D')
   data = np.random.randint(0, 100, size=(len(date_rng), 1))
   df = pd.DataFrame(date_rng, columns=['date'])
   df['value'] = data
   

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

   df.set_index('date', inplace=True)
   hourly_df = df.resample('H').asfreq()
   

4. לבסוף, מילאנו את הערכים החסרים ב-DataFrame המוגדל באמצעות ה- fillna() שיטה עם הפרמטר 'bfill' למילוי לאחור:

   hourly_df.fillna(method='bfill', inplace=True)
   

סיכום

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

הודעות קשורות:

השאירו תגובה