Python 调整Pandas中的datetime以获得CustomBusinessWeek
我有一个很长的股票日价格序列,我试图得到一周的价格做一些计算。我一直在阅读文档,我看到你可以设置一周的具体日期,这正是我想要的。这是假设股票是我运行的循环的一部分的代码Python 调整Pandas中的datetime以获得CustomBusinessWeek,python,pandas,datetime,Python,Pandas,Datetime,我有一个很长的股票日价格序列,我试图得到一周的价格做一些计算。我一直在阅读文档,我看到你可以设置一周的具体日期,这正是我想要的。这是假设股票是我运行的循环的一部分的代码 df_clean_BW[WEEKLY_PricesFriday'] = stock.resample('W-FRI').last() 但对于美国股市来说,周五有很多天是假期,所以我看到你可以调整这一点,以适应美国的黄金假期。这是我使用的代码 from pandas.tseries.offsets import CustomBu
df_clean_BW[WEEKLY_PricesFriday'] = stock.resample('W-FRI').last()
但对于美国股市来说,周五有很多天是假期,所以我看到你可以调整这一点,以适应美国的黄金假期。这是我使用的代码
from pandas.tseries.offsets import CustomBusinessDay
from pandas.tseries.holiday import USFederalHolidayCalendar
bday_us = CustomBusinessDay(calendar=USFederalHolidayCalendar())
但我不知道如何将两者结合起来,这样如果周五有假期,就可以在前一天(改为周四)休假。像这样的东西,但这会抛出一个错误
df_clean_BW[WEEKLY_PricesFriday'] = stock.resample('W-FRI' & bday_us).last()
我有一个很长的日期列表,所以我不想创建一个例外日期列表,因为这太长了。下面是我想要的输出示例。在这种情况下,2016年1月1日是周五,所以我只想以2015年12月31日为准。这对于任何查看股票数据的人来说都是一个常见的要求,但我想不出一个方法来做到这一点
Date Price Week Price
12/30/2015 103.3227
12/31/2015 101.3394
1/4/2016 101.426 101.3394 << Take 12/31 as 1.1 is holiday
1/5/2016 98.8844
1/6/2016 96.9492
1/7/2016 92.8575
1/8/2016 93.3485 93.3485
日期价格周价格
12/30/2015 103.3227
12/31/2015 101.3394
2016年1月4日101.426 101.3394首先生成包括假日在内的星期五数组。然后使用以如下方式偏移它们:
np.busday_offset(fridays, 0, roll='backward', busdaycal=bday_us.calendar)