时间序列 如何提取节假日与普通日子,用python实现
时间: 2023-06-02 18:06:11 浏览: 156
可以使用Python中的pandas和holidays库来提取节假日和普通日子。
首先,需要使用holidays库中的国家节假日参数来获取指定国家的节假日信息。例如,如果要获取中国2021年的节假日信息,可以使用以下代码:
```
import holidays
import pandas as pd
cn_holidays = holidays.China(years=2021)
```
然后,可以将指定时间段的日期序列转换为pandas中的日期时间索引。例如,可以使用以下代码来获取2021年1月1日到2021年12月31日之间的日期序列:
```
start_date = pd.to_datetime('20210101')
end_date = pd.to_datetime('20211231')
date_range = pd.date_range(start=start_date, end=end_date)
```
接下来,可以通过遍历日期序列,判断每个日期是否为节假日,从而提取出节假日和普通日子。可以使用以下代码实现:
```
holiday_list = []
normal_list = []
for date in date_range:
if date in cn_holidays:
holiday_list.append(date)
else:
normal_list.append(date)
```
最后,可以将提取出的节假日和普通日子保存到数组中,进行后续的处理和使用。
完整代码如下:
```
import holidays
import pandas as pd
# 获取中国2021年的节假日信息
cn_holidays = holidays.China(years=2021)
# 获取指定时间段的日期序列
start_date = pd.to_datetime('20210101')
end_date = pd.to_datetime('20211231')
date_range = pd.date_range(start=start_date, end=end_date)
# 遍历日期序列,提取节假日和普通日子
holiday_list = []
normal_list = []
for date in date_range:
if date in cn_holidays:
holiday_list.append(date)
else:
normal_list.append(date)
# 打印节假日和普通日子数量
print('Holiday Count:', len(holiday_list))
print('Normal Count:', len(normal_list))
```
阅读全文