Pandas日期处理之生成工作日与节假日

 更新时间:2023年05月07日 11:53:07   作者:黄昏中起飞的猫头鹰  
Python中的Pandas 提供了许多日期处理功能,使得处理时间序列数据变得容易。本文将介绍如何使用 Pandas 生成工作日和节假日,感兴趣的小伙伴可以收藏一下

Pandas 提供了许多日期处理功能,使得处理时间序列数据变得容易。本文将介绍如何使用 Pandas 生成工作日和节假日。在进行实际操作前,请确保已安装了 Pandas 库。安装方法如下:

pip install pandas

1. 生成工作日

要生成一年中的工作日,我们可以使用 pandas.bdate_range 函数。例如,要生成 2023 年的工作日,可以使用以下代码:

import pandas as pd

start_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, Holiday
import pandas as pd

class 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 DateOffset
date = 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日期处理内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Pycharm汉化两种方法(pycharm改为中文版)

    Pycharm汉化两种方法(pycharm改为中文版)

    PyCharm是一款流行的Python开发环境,提供了丰富的功能和工具,使得Python的开发和调试变得更加方便和高效,下面这篇文章主要给大家介绍了Pycharm汉化的两种方法,所谓汉化就是将pycharm改为中文版,需要的朋友可以参考下
    2023-06-06
  • python调用cmd命令时遇到的路径空格问题和中文乱码的解决

    python调用cmd命令时遇到的路径空格问题和中文乱码的解决

    这篇文章主要介绍了python调用cmd命令时遇到的路径空格问题和中文乱码的解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • 使用python实现多维数据降维操作

    使用python实现多维数据降维操作

    今天小编就为大家分享一篇使用python实现多维数据降维操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python读取txt文件数据的方法(用于接口自动化参数化数据)

    Python读取txt文件数据的方法(用于接口自动化参数化数据)

    这篇文章主要介绍了Python读取txt文件数据的方法(用于接口自动化参数化数据),需要的朋友可以参考下
    2018-06-06
  • Python中ConfigParser模块示例详解

    Python中ConfigParser模块示例详解

    有些时候在项目中,使用配置文件来配置一些灵活的参数是比较常见的事,因为这会使得代码的维护变得更方便,而ini配置文件是比较常用的一种,今天介绍用ConfigParser模块来解析ini配置文件,感兴趣的朋友一起看看吧
    2023-01-01
  • 王纯业的Python学习笔记 下载

    王纯业的Python学习笔记 下载

    这篇文章主要介绍了王纯业的Python学习笔记 下载
    2007-02-02
  • python使用pywinauto驱动微信客户端实现公众号爬虫

    python使用pywinauto驱动微信客户端实现公众号爬虫

    这个项目是通过pywinauto控制windows(win10)上的微信PC客户端来实现公众号文章的抓取。代码分成server和client两部分。server接收client抓取的微信公众号文章,并且保存到数据库。另外server支持简单的搜索和导出功能。client通过pywinauto实现微信公众号文章的抓取。
    2021-05-05
  • pyqt5的QWebEngineView 使用模板的方法

    pyqt5的QWebEngineView 使用模板的方法

    这篇文章主要介绍了pyqt5的QWebEngineView 使用模板的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Python跨文件调用函数以及在一个文件中执行另一个文件

    Python跨文件调用函数以及在一个文件中执行另一个文件

    这篇文章主要给大家介绍了关于Python跨文件调用函数以及在一个文件中执行另一个文件的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友可以参考下
    2022-12-12
  • PyTorch中的padding(边缘填充)操作方式

    PyTorch中的padding(边缘填充)操作方式

    今天小编就为大家分享一篇PyTorch中的padding(边缘填充)操作方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01

最新评论