हल किया गया: पंडों ने अपसैंपलिंग के बाद बैकवर्ड फिल किया

आज की दुनिया में, विभिन्न घटनाओं को समझने और सूचित निर्णय लेने के लिए डेटा हेरफेर और विश्लेषण आवश्यक है। डेटा विश्लेषण में सामान्य कार्यों में से एक समय श्रृंखला डेटा का पुनर्नमूनाकरण है, जिसमें डेटा की आवृत्ति को बदलना शामिल है, या तो अपसैंपलिंग (आवृत्ति में वृद्धि) या डाउनसैंपलिंग (आवृत्ति घटाना)। इस लेख में, हम शक्तिशाली पायथन लाइब्रेरी, पांडा का उपयोग करते हुए समय श्रृंखला डेटा को अपसैंपलिंग करते हुए बैकवर्ड फिलिंग की प्रक्रिया पर चर्चा करेंगे।

बैकवर्ड फिल इन टाइम सीरीज डेटा

जब हम टाइम सीरीज़ डेटा को अपसैंपल करते हैं, तो हम डेटा पॉइंट्स की फ़्रीक्वेंसी बढ़ाते हैं, जिसके परिणामस्वरूप आमतौर पर नए बनाए गए डेटा पॉइंट्स के मान गायब हो जाते हैं। इन लापता मूल्यों को भरने के लिए, हम विभिन्न विधियों का उपयोग कर सकते हैं। ऐसी ही एक विधि कहलाती है पिछड़ा भरना , जिसे बैकफिलिंग. बैकवर्ड फिलिंग समय श्रृंखला में अगले उपलब्ध मूल्य के साथ लापता मूल्यों को भरने की प्रक्रिया है।

पंडों की लाइब्रेरी

पायथन के पंडों की लाइब्रेरी डेटा हेरफेर के लिए एक आवश्यक उपकरण है, डेटाफ़्रेम और टाइम सीरीज़ डेटा जैसी डेटा संरचनाओं को संभालने के लिए कई प्रकार की कार्यक्षमता प्रदान करता है। पंडों में अंतर्निहित विशेषताएं हैं जो समय श्रृंखला डेटा के साथ काम करना आसान बनाती हैं, जैसे कि पुन: नमूनाकरण और लापता मूल्यों को भरना, हमें अपसैंपलिंग के बाद कुशलता से पिछड़े भरने में सक्षम बनाता है।

समाधान: पंडों के साथ बैकवर्ड फिल

पंडों का उपयोग करके समय श्रृंखला डेटा को अपसैंपलिंग करने के बाद बैकवर्ड फिल लगाने की प्रक्रिया को प्रदर्शित करने के लिए, आइए एक सरल उदाहरण पर विचार करें। हम आवश्यक पुस्तकालयों को आयात करके और एक नमूना समय श्रृंखला डेटासेट बनाकर शुरू करेंगे।

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 में मान गायब हैं। हमने तब इस्तेमाल किया फिल्ना () लापता मानों पर बैकवर्ड फिल करने के लिए पैरामीटर '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)
   

निष्कर्ष

इस लेख में, हमने की प्रक्रिया का पता लगाया अपसैंपलिंग टाइम सीरीज डेटा के बाद बैकवर्ड फिलिंग पायथन में शक्तिशाली पांडा पुस्तकालय का उपयोग करना। इन तकनीकों को समझने और लागू करने से, हम समय श्रृंखला डेटा का कुशलतापूर्वक हेरफेर और विश्लेषण कर सकते हैं, मूल्यवान अंतर्दृष्टि की खोज कर सकते हैं और सूचित निर्णय ले सकते हैं।

संबंधित पोस्ट:

एक टिप्पणी छोड़ दो