【发布时间】:2018-03-14 08:17:38
【问题描述】:
我需要获取给定范围内的假期列表,即,如果开始日期是 2016 年 12 月 20 日,结束日期是 2017 年 10 月 1 日,那么我应该得到 25/12/2017, 1/ 1/2017。我可以使用 Pandas 做到这一点,但在我的情况下,我需要 AWS Glue 服务并且 AWS Glue 不支持 Pandas。
我正在尝试使用原生 python 库假期,但我看不到 API 文档来获取从 & 到日期之间的假期?
这是我尝试过的:
import holidays
import datetime
from datetime import date, timedelta
import dateutil
from dateutil.relativedelta import relativedelta
us_holidays = holidays.UnitedStates()
for date2,name in sorted(holidays.US(state='CA', years=2013).items()):
print (date2,name)
days_from_closest_holiday = [(abs(fdate - hdate)).days for hdate in holidays.date.tolist()]
print days_from_closest_holiday
us_holidays 的输出:
(datetime.date(2013, 1, 1), "New Year's Day")
(datetime.date(2013, 1, 21), 'Martin Luther King, Jr. Day')
(datetime.date(2013, 2, 18), "Washington's Birthday")
(datetime.date(2013, 3, 31), 'C\xc3\xa9sar Ch\xc3\xa1vez Day')
(datetime.date(2013, 4, 1), 'C\xc3\xa9sar Ch\xc3\xa1vez Day (Observed)')
(datetime.date(2013, 5, 27), 'Memorial Day')
(datetime.date(2013, 7, 4), 'Independence Day')
(datetime.date(2013, 9, 2), 'Labor Day')
(datetime.date(2013, 10, 14), 'Columbus Day')
(datetime.date(2013, 11, 11), 'Veterans Day')
(datetime.date(2013, 11, 28), 'Thanksgiving')
(datetime.date(2013, 12, 25), 'Christmas Day')
我需要将日期范围 fromdate、todate 传递给 us_holidays 对象,并且我希望在该范围内列出假期列表,如下所示:
DatetimeIndex(['2013-12-25', '2014-01-01'], dtype='datetime64[ns]', freq=None)
[10, 17]
在 pandas 中,我可以使用以下方法获取它:
cal = USFederalHolidayCalendar()
holidays = pd.to_datetime(cal.holidays(start_date, end_date))
print holidays
如上所述,我需要使用 AWS Glue,目前 Glue 不支持 Pandas。
感谢任何帮助。
谢谢
【问题讨论】:
标签: python-2.7 amazon-web-services pyspark aws-glue