You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用pandas生成适配USFederalHolidayCalendar的季度有效交易日序列

问题原因

你之前的写法失效是因为指定了freq='MS'参数,该参数会覆盖pd.bdate_range默认的工作日频率,最终返回的是普通月度首日序列,完全没有应用交易日校验和美国联邦假期排除规则,按3个月间隔切片后自然会出现周末/假期日期。

解决方案

可以通过CustomBusinessDay绑定美国联邦假期规则,再对齐季度起始日期即可:
首先导入依赖模块:

import pandas as pd
from pandas.tseries.holiday import USFederalHolidayCalendar
from pandas.tseries.offsets import CustomBusinessDay

核心实现代码:

start = '2015-06-01'
end = '2019-06-01'

# 定义绑定美国联邦假期规则的自定义交易日
us_trading_day = CustomBusinessDay(calendar=USFederalHolidayCalendar())

# 生成自然季度首日基础序列,可根据你的季度对齐要求修改freq参数,比如QS-JUN代表季度从6月起始
quarter_candidates = pd.date_range(start=start, end=end, freq='QS')

# 对齐到有效交易日:如果季度首日为周末/假期,默认向后取第一个符合规则的交易日
valid_quarter_dates = pd.DatetimeIndex([date + 0 * us_trading_day for date in quarter_candidates])

可选调整

如果你希望非交易日的季度首日向前取最近的有效交易日,只需要把对齐逻辑替换为date - 0 * us_trading_day即可。

内容的提问来源于stack exchange,提问作者laszlopanaflex

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 23:06:06