我有一个(每日)pandas timeSeries,我需要过滤到每月,使用特定工作日的第 n 个出现作为选择日期的规则
到目前为止,我认为最好的方法是首先列出我感兴趣的所有日期的列表或系列,然后询问这些日期的时间序列?
但这仍然留下了一个问题,即我如何列出两个日期之间发生的所有“本月的第二个星期二”?
让我们以 2014 年 9 月和 10 月为例:
from datetime import datetime
import pandas as pd
start = datetime(2014, 9, 1)
end = datetime(2014, 10, 30)
d = pd.date_range(start, end) # use bdate_range for business days
Run Code Online (Sandbox Code Playgroud)
现在您可以构建一个只包含您感兴趣的日期的掩码:
>>> mask = (d.weekday == 1) & (7 < d.day) & (d.day < 15)
>>> d[mask]
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-09-09, 2014-10-14]
Length: 2, Freq: None, Timezone: None
Run Code Online (Sandbox Code Playgroud)