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

如何在Pandas中创建节假日布尔列is_holiday

为Pandas DataFrame添加国家法定节假日标识列

实现步骤

  • 首先安装依赖库holidays,它支持全球多数国家的法定节假日数据:

    pip install holidays
    
  • 编写判断节假日的自定义函数,结合holidays库实现日期与国家的匹配:

    import pandas as pd
    import holidays
    
    def check_holiday(row):
        # 转换日期格式为datetime
        target_date = pd.to_datetime(row['date'])
        # 获取对应国家的节假日集合
        country_holiday_set = holidays.country_holidays(row['country'])
        # 返回1(是节假日)或0(非节假日)
        return 1 if target_date in country_holiday_set else 0
    
  • 将函数应用到DataFrame,生成is_holiday列:

    # 你的示例DataFrame
    df = pd.DataFrame({
        'date': ['2017-01-01', '2019-10-23'],
        'country': ['Spain', 'Brazil']
    })
    
    # 新增列
    df['is_holiday'] = df.apply(check_holiday, axis=1)
    

结果说明

运行后示例DataFrame的结果为:

datecountryis_holiday
2017-01-01Spain1
2019-10-23Brazil0
  • 西班牙的2017年1月1日是元旦,属于法定节假日,标记为1;
  • 巴西的2019年10月23日为工作日,标记为0。

注意事项

  • holidays库支持国家全称(如"Spain")或ISO 3166-1 alpha-2代码(如"ES"),两种输入格式都能识别;
  • 库会自动处理移动节假日(如复活节、感恩节等),无需手动计算。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:13:18