如何在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的结果为:
| date | country | is_holiday |
|---|---|---|
| 2017-01-01 | Spain | 1 |
| 2019-10-23 | Brazil | 0 |
- 西班牙的2017年1月1日是元旦,属于法定节假日,标记为1;
- 巴西的2019年10月23日为工作日,标记为0。
注意事项
holidays库支持国家全称(如"Spain")或ISO 3166-1 alpha-2代码(如"ES"),两种输入格式都能识别;- 库会自动处理移动节假日(如复活节、感恩节等),无需手动计算。
内容的提问来源于stack exchange,提问作者Arnon Vichy
相关产品推荐
相关产品推荐

