如何用Python holidays库生成指定时段的节假日DataFrame
生成包含日期和节假日标记的DataFrame
没问题,我来帮你实现这个需求!要生成2019年1月1日到2020年12月31日期间、包含日期和节假日标记的DataFrame,咱们可以结合pandas和holidays库来完成,具体步骤和代码如下:
完整实现代码
import pandas as pd from datetime import date import holidays # 1. 生成目标时段的连续日期序列 date_range = pd.date_range(start='2019-01-01', end='2020-12-31') # 2. 初始化美国节假日对象 us_holidays = holidays.US() # 3. 生成节假日标记列:日期为节假日则赋值1,否则为0 # 注意:需将datetime64类型转为date类型,匹配holidays库的判断规则 holiday_column = [1 if dt.date() in us_holidays else 0 for dt in date_range] # 4. 组合成最终的DataFrame holiday_df = pd.DataFrame({ 'date': date_range, 'holiday': holiday_column }) # 可选:将date列转换为纯date类型(默认是datetime64) holiday_df['date'] = holiday_df['date'].dt.date # 验证结果(查看前5行) print(holiday_df.head())
关键细节解释
- 日期序列生成:
pd.date_range是pandas中快速生成连续日期的工具,默认生成datetime64格式的日期; - 节假日判断:
holidays.US()会加载美国的官方节假日数据,判断时需要将datetime64转为date类型(通过.dt.date()),才能和库中的日期格式匹配; - 标记列生成:用列表推导式高效遍历所有日期,生成符合要求的0/1标记列。
示例输出
运行代码后,前几行的输出大概是这样的:
date holiday 0 2019-01-01 1 # 元旦 1 2019-01-02 0 2 2019-01-03 0 3 2019-01-04 0 4 2019-01-05 0
内容的提问来源于stack exchange,提问作者Bella_18
相关产品推荐
相关产品推荐

