दैनिक आवृत्ति के साथ
मेरे पास
। मैं इस श्रृंखला
पर मनमाने ढंग से आवृत्ति और एक मनमानी लुक-बैक विंडो के साथ फिर से करना चाहता हूं। उदाहरण के लिए: 1 साल का लुकबैक विन्डो के साथ आधे-बार इत्तेफाक।
ऐसा कुछ आदर्श होगा: df.timegroup में df_year के लिए
(freq = '6m' , लुकैक = '1 ए'): # df_year दैनिक कीमतों में एक वर्ष का विस्तार होगा और हर 6 महीनों में उत्पन्न होगा
मुझे पता है समयगुवापर
लेकिन नहीं लगा बाहर कैसे यह यह कर सकता है वैसे भी, मैं इसे मैन्युअल रूप से कोड कर सकता था लेकिन एक चालाक पांडा
एक-लाइनर के लिए उम्मीद कर रहा था।
संपादित करें: यह थोड़ी करीब हो रहा है:
< कोड> pd.rolling_apply (df, 252, लैम्ब्डा s: s.sum (), freq = pd.datetools.BMonthEnd ())
यह काफी काम नहीं करता, क्योंकि यह लागू होता है 252 * BMonthEnd () की एक लुकबैक विंडो जब मैं स्वतंत्र होना चाहता हूं और महीने के हर छोर के 252 दिन की एक लुकबैक विंडो रखता हूं।
मुझे लगता है कि आप यही चाहते हैं
एक आवृत्ति की एक श्रृंखला का निर्माण [77]: I = pd.date_range ('20110101', '20150101', फ्रीक = 'बी') में [78]: s = श्रृंखला (1) 1, सूचकांक = i) में [7 9]: एस आउट [79]: 2011-01-03 1 2011-01-04 1 2011-01-05 1 2011-01-06 1 2011-01-07 1 .. 2014 -12-26 1 2014-12-29 1 2014-12-30 1 2014-12-31 1 2015-01-01 1 फ़्रीक्वः बी, डीटीपी: इंट 64 में [80]: लेन (एस) आउट [80]: 1044
इंडेक्स को दूसरे फ़्रीक्वेंसी के अनुरूप बनाएं। इससे प्रत्येक सूचकांक तत्व अंत-महीने का हो जाता है।
में [81]: s.index = s.index.to_period ('M')। To_timestamp ('M') [82] में: एस आउट [82]: 2011-01-31 1 2011-01-31 1 2011-01-31 1 2011-01-31 1 2011-01-31 1 .. 2014-12-31 1 2014 -12-31 1 2014-12-31 1 2014-12-31 1 2015-01-31 1 डीटीआईपी: इंट 64
फिर इसके सीधा और दूसरे आवृत्ति को फिर से प्रदर्शित करने के लिए यह आपको इस मामले की अवधि में व्यावसायिक दिनों की संख्या देता है।
में [83]: s.resample ('3M', कैसे = 'योग') बाहर [83]: 2011 -01-31 21 2011-04-30 64 2011-07-31 65 2011-10-31 66 2012-01-31 66 .. 2014-01-31 66 2014-04-30 63 2014-07-31 66 2014 -10-31 66 2015-01-31 44 फ्रीक: 3 एम, डीटीपी: इंट 64
No comments:
Post a Comment