Λύθηκε: τα πάντα γεμίζουν προς τα πίσω μετά την δειγματοληψία

Στον σημερινό κόσμο, ο χειρισμός και η ανάλυση δεδομένων είναι απαραίτητες για την κατανόηση διαφόρων φαινομένων και τη λήψη τεκμηριωμένων αποφάσεων. Μία από τις κοινές εργασίες στην ανάλυση δεδομένων είναι η επαναδειγματοληψία δεδομένων χρονοσειρών, η οποία περιλαμβάνει την αλλαγή της συχνότητας των δεδομένων, είτε με upsampling (αύξηση της συχνότητας) είτε με downsampling (μείωση της συχνότητας). Σε αυτό το άρθρο, θα συζητήσουμε τη διαδικασία πλήρωσης προς τα πίσω κατά τη δειγματοληψία δεδομένων χρονοσειρών χρησιμοποιώντας την πανίσχυρη βιβλιοθήκη Python, Pandas.

Συμπλήρωση προς τα πίσω δεδομένων χρονοσειρών

Όταν κάνουμε δειγματοληψία δεδομένων χρονοσειρών, αυξάνουμε τη συχνότητα των σημείων δεδομένων, κάτι που συνήθως έχει ως αποτέλεσμα να λείπουν τιμές για τα νέα σημεία δεδομένων. Για να συμπληρώσουμε αυτές τις τιμές που λείπουν, μπορούμε να χρησιμοποιήσουμε μια ποικιλία μεθόδων. Μια τέτοια μέθοδος ονομάζεται προς τα πίσω γέμιση, γνωστός και ως επίχωση. Η συμπλήρωση προς τα πίσω είναι η διαδικασία συμπλήρωσης των τιμών που λείπουν με την επόμενη διαθέσιμη τιμή στη χρονοσειρά.

Βιβλιοθήκη Pandas

Πύθωνα Βιβλιοθήκη Pandas είναι ένα απαραίτητο εργαλείο για τον χειρισμό δεδομένων, προσφέροντας ένα ευρύ φάσμα λειτουργιών για το χειρισμό δομών δεδομένων όπως DataFrames και δεδομένα χρονοσειρών. Το Pandas έχει ενσωματωμένες λειτουργίες που διευκολύνουν την εργασία με δεδομένα χρονοσειρών, όπως η εκ νέου δειγματοληψία και η συμπλήρωση τιμών που λείπουν, επιτρέποντάς μας να εκτελούμε αποτελεσματικά την αντίστροφη πλήρωση μετά την ανερχόμενη δειγματοληψία.

Λύση: Γέμισμα προς τα πίσω με Πάντα

Για να δείξουμε τη διαδικασία εφαρμογής μιας αντίστροφης πλήρωσης μετά την ανερχόμενη δειγματοληψία δεδομένων χρονοσειρών χρησιμοποιώντας Panda, ας εξετάσουμε ένα απλό παράδειγμα. Θα ξεκινήσουμε εισάγοντας τις απαραίτητες βιβλιοθήκες και δημιουργώντας ένα δείγμα δεδομένων χρονοσειρών.

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. Δημιουργήσαμε ένα δείγμα δεδομένων χρονοσειρών χρησιμοποιώντας το εύρος ημερομηνιών() λειτουργία από τα Pandas για τη δημιουργία ημερήσιων ημερομηνιών και τυχαίων αριθμητικών τιμών:

   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() λειτουργίες:

   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. Με την κατανόηση και την εφαρμογή αυτών των τεχνικών, μπορούμε να χειριστούμε και να αναλύσουμε αποτελεσματικά δεδομένα χρονοσειρών, ανακαλύπτοντας πολύτιμες ιδέες και λαμβάνοντας τεκμηριωμένες αποφάσεις.

Σχετικές αναρτήσεις:

Αφήστε ένα σχόλιο