用字典和lambda的方法判别2023年日期列是否为节假日
时间: 2024-03-20 08:42:27 浏览: 56
可以按照类似的方式使用字典和lambda函数来判断2023年日期列是否为节假日。具体实现方法如下:
1. 首先需要更新节假日数据,将2019年至2022年的数据删除,添加2023年的节假日数据。
``` python
import datetime
holidays = {
'2023-01-01': '元旦节',
'2023-01-02': '元旦节',
'2023-01-03': '元旦节',
'2023-02-09': '春节',
'2023-02-10': '春节',
'2023-02-11': '春节',
'2023-02-12': '春节',
'2023-02-13': '春节',
'2023-02-14': '春节',
'2023-04-05': '清明节',
'2023-05-01': '劳动节',
'2023-05-02': '劳动节',
'2023-05-03': '劳动节',
'2023-06-18': '端午节',
'2023-09-30': '国庆节',
'2023-10-01': '国庆节',
'2023-10-02': '国庆节',
'2023-10-03': '国庆节',
'2023-10-04': '国庆节',
'2023-10-05': '国庆节',
'2023-10-06': '国庆节',
'2023-10-07': '国庆节',
}
```
2. 然后同样可以定义一个lambda函数来判断给定日期是否为节假日。
``` python
is_holiday = lambda x: x.strftime('%Y-%m-%d') in holidays
```
3. 最后可以使用类似的方式对2023年的日期列进行判断。
``` python
import pandas as pd
dates = pd.date_range('2023-01-01', '2023-12-31')
df = pd.DataFrame({'date': dates})
df['is_holiday'] = df['date'].apply(lambda x: is_holiday(x))
print(df)
```
输出结果如下:
```
date is_holiday
0 2023-01-01 True
1 2023-01-02 True
2 2023-01-03 True
3 2023-01-04 False
4 2023-01-05 False
.. ... ...
360 2023-12-27 False
361 2023-12-28 False
362 2023-12-29 False
363 2023-12-30 False
364 2023-12-31 False
[365 rows x 2 columns]
```
上述代码中,首先使用pandas库中的date_range函数生成2023年的日期列,然后对日期列中的每个日期使用apply方法进行判断,最终将判断结果存储在新的一列中。
阅读全文