有没有办法让频率包括工作日但不包括 Python 中的(美国)假期?
Is there a way to make frequency include business days but without (US) holidays in Python?
我正在尝试生成一个包含 2017 年所有 'trading days' 的 pandas.DataFrame
,基本上是工作日减去假期。或者,我可以制作一个 list
(来自另一个 pandas.DataFrame
,为了参数起见称为 'dates'。)并传递它但不太确定如何传递。
下面是我当前生成的代码,但包括假期。
new_fut = pd.DataFrame(pd.date_range(start = '2017-1-1', end = '2018-1-1', freq = 'b'), columns = ['ds'])
检查 bdate_range
您的 self-define 假期列表 (yourlist
)
pd.bdate_range(start='2017-1-1', end='2018-1-1',holidays = yourlist)
给你。这将从自定义工作日中删除所有假期。
import pandas as pd
from pandas.tseries.holiday import USFederalHolidayCalendar
from pandas.tseries.offsets import CustomBusinessDay
start ='2017-1-1'
end = '2018-1-1'
us_bd = CustomBusinessDay(calendar=USFederalHolidayCalendar())
df=pd.DatetimeIndex(start=start,end=end, freq=us_bd)
df
Pandas 支持自定义假期,还有一个内置的 USFederalHolidayCalendar,可能会满足您的需求。
您可以在这里找到更多信息:
http://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html
向下滚动到 Holidays/Holiday 个日历
在 DateOffset 对象下
我正在尝试生成一个包含 2017 年所有 'trading days' 的 pandas.DataFrame
,基本上是工作日减去假期。或者,我可以制作一个 list
(来自另一个 pandas.DataFrame
,为了参数起见称为 'dates'。)并传递它但不太确定如何传递。
下面是我当前生成的代码,但包括假期。
new_fut = pd.DataFrame(pd.date_range(start = '2017-1-1', end = '2018-1-1', freq = 'b'), columns = ['ds'])
检查 bdate_range
您的 self-define 假期列表 (yourlist
)
pd.bdate_range(start='2017-1-1', end='2018-1-1',holidays = yourlist)
给你。这将从自定义工作日中删除所有假期。
import pandas as pd
from pandas.tseries.holiday import USFederalHolidayCalendar
from pandas.tseries.offsets import CustomBusinessDay
start ='2017-1-1'
end = '2018-1-1'
us_bd = CustomBusinessDay(calendar=USFederalHolidayCalendar())
df=pd.DatetimeIndex(start=start,end=end, freq=us_bd)
df
Pandas 支持自定义假期,还有一个内置的 USFederalHolidayCalendar,可能会满足您的需求。
您可以在这里找到更多信息:
http://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html
向下滚动到 Holidays/Holiday 个日历 在 DateOffset 对象下