pandas 0.23 - 17. Time Series / Date functionality

समय श्रृंखला / तिथि कार्यक्षमता




pandas

समय श्रृंखला / तिथि कार्यक्षमता

पांडा विशेष रूप से वित्तीय डेटा विश्लेषण स्थान में समय श्रृंखला डेटा के साथ काम करने के लिए एक उपकरण के रूप में बहुत सफल साबित हुए हैं। NumPy datetime64 और timedelta64 dtypes का उपयोग करते हुए, हमने scikits.timeseries जैसी अन्य पायथन लाइब्रेरी से बड़ी संख्या में सुविधाओं को समेकित किया है और साथ ही श्रृंखला डेटा में हेरफेर करने के लिए नई कार्यक्षमता का एक जबरदस्त हिस्सा बनाया है।

समय श्रृंखला डेटा के साथ काम करने में, हम अक्सर निम्नलिखित की तलाश करेंगे:

  • फिक्स्ड-फ्रीक्वेंसी डेट और टाइम स्पैन के सीक्वेंस जेनरेट करते हैं
  • किसी विशेष फ्रिक्वेंसी में समय श्रृंखला के अनुरूप या परिवर्तित करें
  • विभिन्न गैर-मानक समय वृद्धि के आधार पर "सापेक्ष" तिथियों की गणना करें (जैसे वर्ष के अंतिम व्यावसायिक दिन से 5 दिन पहले), या "रोल" आगे या पीछे की तारीखें

उपरोक्त कार्यों को करने के लिए पांडा एक अपेक्षाकृत कॉम्पैक्ट और स्व-निहित उपकरण प्रदान करता है।

दिनांक बनाएं:

# 72 hours starting with midnight Jan 1st, 2011
In [1]: rng = pd.date_range('1/1/2011', periods=72, freq='H')

In [2]: rng[:5]
Out[2]: 
DatetimeIndex(['2011-01-01 00:00:00', '2011-01-01 01:00:00',
               '2011-01-01 02:00:00', '2011-01-01 03:00:00',
               '2011-01-01 04:00:00'],
              dtype='datetime64[ns]', freq='H')

दिनांक के साथ इंडेक्स पांडा ऑब्जेक्ट्स:

In [3]: ts = pd.Series(np.random.randn(len(rng)), index=rng)

In [4]: ts.head()
Out[4]: 
2011-01-01 00:00:00    0.469112
2011-01-01 01:00:00   -0.282863
2011-01-01 02:00:00   -1.509059
2011-01-01 03:00:00   -1.135632
2011-01-01 04:00:00    1.212112
Freq: H, dtype: float64

आवृत्ति बदलें और अंतराल भरें:

# to 45 minute frequency and forward fill
In [5]: converted = ts.asfreq('45Min', method='pad')

In [6]: converted.head()
Out[6]: 
2011-01-01 00:00:00    0.469112
2011-01-01 00:45:00    0.469112
2011-01-01 01:30:00   -0.282863
2011-01-01 02:15:00   -1.509059
2011-01-01 03:00:00   -1.135632
Freq: 45T, dtype: float64

एक दैनिक आवृत्ति के लिए श्रृंखला को फिर से भरना:

# Daily means
In [7]: ts.resample('D').mean()
Out[7]: 
2011-01-01   -0.319569
2011-01-02   -0.337703
2011-01-03    0.117258
Freq: D, dtype: float64

अवलोकन

निम्न तालिका से पता चलता है कि समय से संबंधित कक्षाओं के प्रकार पांडा कैसे संभाल सकते हैं और उन्हें कैसे बना सकते हैं।

कक्षा टिप्पणियों कैसे बनाएं
Timestamp एकल टाइमस्टैम्प का प्रतिनिधित्व करता है to_datetime , Timestamp
DatetimeIndex Timestamp सूचकांक to_datetime , to_datetime , bdate_range , DatetimeIndex
Period एक समय अवधि का प्रतिनिधित्व करता है Period
PeriodIndex Period सूचकांक period_range , PeriodIndex

टाइमस्टैम्प बनाम टाइम स्पैन

टाइमस्टैम्पड डेटा टाइम बेसिक सीरीज डेटा का सबसे बुनियादी प्रकार है जो समय के साथ अंकों को जोड़ता है। पंडों की वस्तुओं के लिए इसका मतलब समय में बिंदुओं का उपयोग करना है।

In [8]: pd.Timestamp(datetime(2012, 5, 1))
Out[8]: Timestamp('2012-05-01 00:00:00')

In [9]: pd.Timestamp('2012-05-01')