【发布时间】:2020-05-28 18:19:49
【问题描述】:
我的问题与以下不同:
问题1:Week of a month pandas 问题2:Week number of the month
上述问题涉及假设一周中有 7 天。它试图计算每周有 7 天的数量。我的数据由(工作日)每日价格组成,由于市场因假期休市,有时可能会缺少一周中的几天。
我的问题是如何给定日期找到一个月中的星期几。请注意,我突出显示了“给定日期”,因为此过程每天都会处理,因此任何看起来提前到月底的答案都可能不起作用。
我的尝试一直是不理想的前瞻性:
def is_third_friday(s):
d = datetime.datetime.strptime(s, '%Y-%m-%d')
return d.weekday() == 5 and 15 <= d.day <= 21
dow = deepcopy(data['Close'] * np.nan).to_frame()
dow.columns = ['OpexFriday']
dow['next_date'] = pd.Series([str(i.date() + datetime.timedelta(days=1)) for i in dow.index]).values
dow['OpexFriday'] = pd.Series([is_third_friday(str(i)) for i in dow['next_date']]).values
dow['OpexWeek'] = (dow['OpexFriday'] * 1).replace(0, np.nan).fillna(method='bfill', limit=4).replace(np.nan, 0) == True
我不知道如何提供一些示例 data 但如果您转到“https://aroussi.com/post/python-yahoo-finance”页面并使用作者的 yfinance 包,您将能够获取一些价格数据。
上面的函数将找到该月的第 3 周(全部为 True)。此外,它还将设置该周的星期五。
如果您发现问题有任何问题或重复问题,请告诉我。我已经搜索了一段时间的解决方案。
【问题讨论】: