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

Python使用holidays库判断德国假日 pandas新增列全为False求解

问题原因

你遇到的现象是holidays库的默认设计导致的:调用holidays.DE()不传入years参数时,库只会默认加载当前系统所在年份的节假日数据。你的数据集覆盖2018-2021年,只要当前系统年份不在这个区间内,就会出现所有日期判断都为False的结果。

解决方法

不需要手动枚举年份,直接从你的数据列里提取所有覆盖的年份,传给holidays的构造参数即可,同时统一日期类型避免datetime带时分秒的匹配误差,代码如下:

import holidays

# 提取数据集覆盖的所有唯一年份
all_years = df['Date'].dt.year.unique()
# 初始化对应全部年份的德国节假日对象
de_holidays = holidays.DE(years=all_years)
# 转换为date类型后匹配,保证判断准确
df['Holiday'] = df['Date'].dt.date.isin(de_holidays)

补充说明

如果需要匹配德国对应州的特殊节假日,可以在初始化时增加prov参数指定州,示例:

# 示例:加载巴伐利亚州的节假日
de_holidays_by = holidays.DE(years=all_years, prov='BY')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 17:54:03