இன்றைய உலகில், பல்வேறு நிகழ்வுகளைப் புரிந்துகொள்வதற்கும் தகவலறிந்த முடிவுகளை எடுப்பதற்கும் தரவு கையாளுதல் மற்றும் பகுப்பாய்வு அவசியம். தரவுப் பகுப்பாய்வில் பொதுவான பணிகளில் ஒன்று நேரத் தொடர் தரவை மறு மாதிரியாக்குவது ஆகும், இதில் தரவின் அதிர்வெண்ணை மாற்றுதல் (அதிர்வெண் அதிகரிப்பு) அல்லது குறைப்பு (அதிர்வெண் குறைத்தல்) ஆகியவற்றில் அடங்கும். இந்த கட்டுரையில், சக்திவாய்ந்த பைதான் நூலகமான பாண்டாஸைப் பயன்படுத்தி நேரத் தொடர் தரவை மேம்படுத்தும் போது பின்தங்கிய நிரப்புதல் செயல்முறையைப் பற்றி விவாதிப்போம்.
காலவரிசைத் தரவுகளில் பின்னோக்கி நிரப்புதல்
நாம் நேரத் தொடர் தரவை மேம்படுத்தும்போது, தரவுப் புள்ளிகளின் அதிர்வெண்ணை அதிகரிக்கிறோம், இது பொதுவாக புதிதாக உருவாக்கப்பட்ட தரவுப் புள்ளிகளுக்கான மதிப்புகளை இழக்கும். இந்த விடுபட்ட மதிப்புகளை நிரப்ப, நாம் பல்வேறு முறைகளைப் பயன்படுத்தலாம். அத்தகைய ஒரு முறை அழைக்கப்படுகிறது பின்தங்கிய நிரப்புதல், எனவும் அறியப்படுகிறது மீண்டும் நிரப்புதல். பின்னோக்கி நிரப்புதல் என்பது விடுபட்ட மதிப்புகளை நேரத் தொடரில் கிடைக்கும் அடுத்த மதிப்புடன் நிரப்பும் செயல்முறையாகும்.
பாண்டாஸ் நூலகம்
பைதான்ஸ் பாண்டாஸ் நூலகம் டேட்டா ஃப்ரேம்கள் மற்றும் நேரத் தொடர் தரவு போன்ற தரவு கட்டமைப்புகளைக் கையாள்வதற்கான பரந்த அளவிலான செயல்பாடுகளை வழங்கும் தரவு கையாளுதலுக்கான இன்றியமையாத கருவியாகும். பாண்டாஸ் உள்ளமைக்கப்பட்ட அம்சங்களைக் கொண்டுள்ளது, இது நேரத் தொடர் தரவுகளுடன் வேலை செய்வதை எளிதாக்குகிறது, அதாவது மறு மாதிரி செய்தல் மற்றும் விடுபட்ட மதிப்புகளை நிரப்புதல், மாதிரிக்கு பிறகு பின்தங்கிய நிரப்புதலை திறம்பட செயல்படுத்த உதவுகிறது.
தீர்வு: பாண்டாக்களுடன் பின்னோக்கி நிரப்பவும்
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)
மேலே உள்ள குறியீட்டில், முதலில் 'தேதி' நெடுவரிசையை குறியீடாக அமைத்தோம், பின்னர் தரவை ஒரு மணிநேர அதிர்வெண்ணுக்கு மாற்றியமைத்தோம் மறு மாதிரி() செயல்பாடு. இதன் விளைவாக வரும் டேட்டாஃப்ரேம் அதிகரித்த அதிர்வெண் காரணமாக மதிப்புகளைக் காணவில்லை. பின்னர் நாங்கள் பயன்படுத்தினோம் ஃபில்னா() விடுபட்ட மதிப்புகளில் பின்தங்கிய நிரப்புதலைச் செய்ய 'bfill' அளவுருவுடன் முறை.
படிப்படியான விளக்கம்
குறியீட்டை நன்றாகப் புரிந்துகொள்ள அதை உடைப்போம்:
1. நாங்கள் முதலில் பாண்டாக்கள் மற்றும் 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() செயல்பாடுகளை:
df.set_index('date', inplace=True) hourly_df = df.resample('H').asfreq()
4. கடைசியாக, அப்சாம்பிள் செய்யப்பட்ட டேட்டாஃப்ரேமில் விடுபட்ட மதிப்புகளைப் பயன்படுத்தி நிரப்பினோம் ஃபில்னா() பின்தங்கிய நிரப்புதலுக்கான 'bfill' அளவுருவுடன் முறை:
hourly_df.fillna(method='bfill', inplace=True)
தீர்மானம்
இந்த கட்டுரையில், செயல்முறையை நாங்கள் ஆராய்ந்தோம் நேரத் தொடர் தரவை உயர்த்திய பின் பின்தங்கிய நிரப்புதல் பைத்தானில் உள்ள சக்திவாய்ந்த பாண்டாஸ் நூலகத்தைப் பயன்படுத்துகிறது. இந்த நுட்பங்களைப் புரிந்துகொண்டு செயல்படுத்துவதன் மூலம், நேரத் தொடர் தரவை நாம் திறமையாகக் கையாளலாம் மற்றும் பகுப்பாய்வு செய்யலாம், மதிப்புமிக்க நுண்ணறிவுகளைக் கண்டறியலாம் மற்றும் தகவலறிந்த முடிவுகளை எடுக்கலாம்.