Я пытаюсь создать временную серию, используя панд, чтобы позволить мне фильтровать информационный фрейм. Я должен включать только данные, соответствующие первому и последнему рабочему дню каждого месяца. Я, однако, должен учитывать праздничные дни. На первом этапе я пытаюсь создать временную серию, которая содержит все даты окончания рабочего месяца, с учетом праздников. Мой запуск моего кода выглядит следующим образом (фильтрация еще не включена):
import pandas as pd
from pandas.tseries.holiday import USFederalHolidayCalendar as calendar
stocks = pd.read_csv('appl_1980_2014.csv')
stocks['Date']=pd.to_datetime(stocks['Date'])
stocks=stocks.set_index('Date',verify_integrity=True)
cal = calendar()
holidays = cal.holidays(start=stocks.tail(1).index[0], end=stocks.head(1).index[0])
a=pd.bdate_range(end=stocks.head(1).index[0], start=stocks.tail(1).index[0], freq='BM',holidays=holidays)
Когда я запускаю код, я получаю сообщение об ошибке:
File "C:/Users/43153/Documents/General/ACE/pre-test/apple_stocks.py", line 17, in <module>
a=pd.bdate_range(end=stocks.head(1).index[0], start=stocks.tail(1).index[0], freq='BM',holidays=holidays,weekmask=None)
File "C:\ML\anaconda3\lib\site-packages\pandas\core\indexes\datetimes.py", line 1678, in bdate_range
elif holidays or weekmask:
File "C:\ML\anaconda3\lib\site-packages\pandas\core\indexes\base.py", line 2394, in __nonzero__
self.__class__.__name__
ValueError: The truth value of a DatetimeIndex is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().
Что вызывает такое поведение? К сожалению, я пока не смог найти ответ в Интернете.
(Если у кого-нибудь есть более изящное предложение включить в рабочие ряды начало рабочих месяцев, мне было бы очень интересно сделать фильтрацию более простой. позже.)