这篇教程Pandas日期处理之生成工作日与节假日写得很实用,希望能帮到您。 Pandas 提供了许多日期处理功能,使得处理时间序列数据变得容易。本文将介绍如何使用 Pandas 生成工作日和节假日。在进行实际操作前,请确保已安装了 Pandas 库。安装方法如下:
1. 生成工作日要生成一年中的工作日,我们可以使用 pandas.bdate_range 函数。例如,要生成 2023 年的工作日,可以使用以下代码: import pandas as pdstart_date = '2023-01-01'end_date = '2023-12-31'business_days = pd.bdate_range(start=start_date, end=end_date)print(business_days) 接下来,我们将展示如何从数据中去除工作日。首先,假设我们有如下数据: date_range = pd.date_range(start=start_date, end=end_date)data = pd.DataFrame(date_range, columns=['date']) 接着,我们可以使用 pandas.DataFrame.isin 函数找到数据中的工作日,并使用 ~ 运算符将这些工作日从数据中去除。 non_business_days = data[~data['date'].isin(business_days)]print(non_business_days)
2. 生成节假日我们可以使用 Pandas 中的 AbstractHolidayCalendar 类和 Holiday 类来创建自定义节假日。以下是一个包含2023年部分中国节假日的示例: from pandas.tseries.holiday import AbstractHolidayCalendar, Holidayimport pandas as pdclass ChinaHolidaysCalendar(AbstractHolidayCalendar): rules = [ Holiday('元旦', month=1, day=1), Holiday('元旦', month=1, day=2), Holiday('元旦', month=1, day=3), Holiday('春节', month=1, day=21), Holiday('春节', month=1, day=22), # 同样的方法添加其他节假日 ]start_date = '2023-01-01'end_date = '2023-12-31'china_holidays_calendar = ChinaHolidaysCalendar()holidays = china_holidays_calendar.holidays(start_date, end_date)print(holidays) 现在我们已经生成了2023年包含多天的中国节假日,接下来我们将从数据中去除这些节假日。首先,假设我们有如下数据: date_range = pd.date_range(start=start_date, end=end_date)data = pd.DataFrame(date_range, columns=['date']) 接下来,我们可以使用 pandas.DataFrame.isin 函数找到数据中的节假日,并使用 ~ 运算符将这些节假日从数据中去除。 non_holidays = data[~data['date'].isin(holidays)]print(non_holidays) 至此,我们已经成功地使用 Pandas 生成了工作日和节假日,并从数据中去除了这些日期。请注意,这个例子只包含了部分节假日,实际应用时请根据实际情况进行调整。
3. Pandas 日期处理知识点创建日期范围: 使用 pd.date_range 函数可以创建日期范围。例如,要生成从2023年1月1日到2023年12月31日的日期范围,可以使用以下代码: date_range = pd.date_range(start='2023-01-01', end='2023-12-31') 日期偏移量: Pandas 提供了 DateOffset 类,可以用于对日期执行各种算术运算。例如,要将日期向前推一天,可以使用以下代码: from pandas.tseries.offsets import DateOffsetdate = pd.Timestamp('2023-01-01')new_date = date + DateOffset(days=1) 重采样时间序列数据: 使用 pd.DataFrame.resample 函数可以将时间序列数据按照指定频率进行重新采样。例如,要将按天采样的数据转换为按月采样的数据,可以使用以下代码: resampled_data = data.resample('M').mean() 滚动窗口操作: 使用 pd.DataFrame.rolling 函数可以对时间序列数据执行滚动窗口操作。例如,要计算7天滚动平均值,可以使用以下代码: rolling_mean = data.rolling(window=7).mean() 日期格式化: 使用 pd.Timestamp.strftime 函数可以将日期格式化为字符串。例如,要将日期格式化为 “YYYY-MM-DD” 的格式,可以使用以下代码: formatted_date = pd.Timestamp('2023-01-01').strftime('%Y-%m-%d') 到此这篇关于Pandas日期处理之生成工作日与节假日的文章就介绍到这了,更多相关Pandas日期处理内容请搜索wanshiok.com以前的文章或继续浏览下面的相关文章希望大家以后多多支持wanshiok.com! Python微服务开发之使用FastAPI构建高效API 利用python获取想要搜索的数据 |