के साथ व्यापार छुट्टी कैलेंडर बनाएं मैं पांडों का उपयोग कर एक व्यापार कैलेंडर बनाने की कोशिश कर रहा हूं। मैं USFederalHolidayCalendar के आधार पर एक कैल उदाहरण बनाने में सक्षम हूं। यूएसएफडरल होलीडे कैलेंडर ट्रेडिंग कैलेंडर के अनुरूप नहीं है जिसमें ट्रेडिंग कैलेंडर में कोलंबस डे और वयोवृद्ध दिवस शामिल नहीं है। हालांकि, ट्रेडिंग कैलेंडर में गुड फ्राइडे शामिल है (यूएसएफडरल होलीडे कैलेंडर में शामिल नहीं है)। कोड निम्नलिखित में अंतिम पंक्ति के अलावा सब कुछ काम करता है:पांडस
from pandas.tseries.holiday import get_calendar, HolidayCalendarFactory, GoodFriday
from datetime import datetime
cal = get_calendar('USFederalHolidayCalendar') # Create calendar instance
cal.rules.pop(7) # Remove Veteran's Day rule
cal.rules.pop(6) # Remove Columbus Day rule
tradingCal = HolidayCalendarFactory('TradingCalendar', cal, GoodFriday)
tradingCal उदाहरण में काम करने के लिए है कि मैं छुट्टी नियम देखने में सक्षम हूँ लगता है।
In[10]: tradingCal.rules
Out[10]:
[Holiday: Labor Day (month=9, day=1, offset=<DateOffset: kwds={'weekday': MO(+1)}>),
Holiday: Presidents Day (month=2, day=1, offset=<DateOffset: kwds={'weekday': MO(+3)}>),
Holiday: Good Friday (month=1, day=1, offset=[<Easter>, <-2 * Days>]),
Holiday: Dr. Martin Luther King Jr. (month=1, day=1, offset=<DateOffset: kwds={'weekday': MO(+3)}>),
Holiday: New Years Day (month=1, day=1, observance=<function nearest_workday at 0x000000000A190BA8>),
Holiday: Thanksgiving (month=11, day=1, offset=<DateOffset: kwds={'weekday': TH(+4)}>),
Holiday: July 4th (month=7, day=4, observance=<function nearest_workday at 0x000000000A190BA8>),
Holiday: Christmas (month=12, day=25, observance=<function nearest_workday at 0x000000000A190BA8>),
Holiday: MemorialDay (month=5, day=31, offset=<DateOffset: kwds={'weekday': MO(-1)}>)]
मैं एक समय अवधि के दौरान छुट्टियों सूची प्रयास करते हैं, मैं निम्नलिखित त्रुटि मिलती है:
In[11]: tradingCal.holidays(datetime(2014, 12, 31), datetime(2016, 12, 31))
Traceback (most recent call last):
File "C:\Python27\lib\site-packages\IPython\core\interactiveshell.py", line 3035, in run_code
exec(code_obj, self.user_global_ns, self.user_ns)
File "<ipython-input-12-2708cd2db7a0>", line 1, in <module>
tradingCal.holidays(datetime(2014, 12, 31), datetime(2016, 12, 31))
TypeError: unbound method holidays() must be called with TradingCalendar instance as first argument (got datetime instance instead)
कोई भी विचार?
परफेक्ट, जेज़राइल। धन्यवाद। – vlmercado
मुझे लगता है कि यह एक महत्वपूर्ण कमी है! '.pop' का उपयोग अंतर्निहित वर्ग 'pandas.tseries.holiday.USFederalHolidayCalendar' को प्रभावित करता है क्योंकि यह एक" इन-प्लेस "ऑपरेशन (शब्दावली के बारे में सुनिश्चित नहीं है)। इसका अर्थ यह है कि यदि आप 'get_calendar ('USFederalHolidayCalendar') से cal2 को पुनः प्रयास और पुन: बनाते हैं, तो नियम' cal' के समान होते हैं। यानी आपको 'यूएसएफडरल होलीडे कैलेंडर' का * साफ * संस्करण नहीं मिला है क्योंकि यह अब अस्तित्व में नहीं है, आपने इसे संशोधित किया है! – evan54
@ evan54 मैंने अभी भी यह देखा है। क्या आपके पास एक समाधान है? – WillZ