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

pandas bdate_range的holidays参数允许日期格式及生效问题咨询

问题原因与解决方案

为什么"20240702"没被排除?

当使用freq="C"(自定义工作日频率)时,bdate_range生成的日期是pandas.Timestamp类型。传入的"20240702"是纯数字字符串,pandas不会自动将其解析为Timestamp,导致假期匹配时无法和序列中的日期对应,所以7月2日没有被排除。而"2024-07-02"是ISO标准日期格式,会被自动识别并解析为对应的Timestamp,能成功匹配并排除目标日期。

holidays参数支持的日期格式

以下几种格式都可以正常生效:

  • 标准ISO格式字符串:比如"2024-07-02"、"2024/07/02",这类格式会被pandas自动解析为正确的日期对象
  • 预解析的日期对象:直接传入datetime.date实例或pandas.Timestamp实例,比如datetime.date(2024,7,2)、pd.Timestamp("20240702")
  • 提前统一解析的字符串列表:用pd.to_datetime()把所有假期字符串转成Timestamp列表,比如holidays=pd.to_datetime(["20240702", "20240704"]),这样不管字符串格式是纯数字还是其他可解析格式,都能正常匹配

验证示例

如果想保留"20240702"这种格式,只需提前解析:

import pandas as pd

# 提前解析假期字符串
holidays = pd.to_datetime(["20240702"])
result = pd.bdate_range(start='20240701', end='20240705', holidays=holidays, freq="C")
print(result)
# 输出:DatetimeIndex(['2024-07-01', '2024-07-03', '2024-07-04', '2024-07-05'], dtype='datetime64[ns]', freq='C')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 21:05:01