Python区分工作日、周末、法定假日的方法

2019-10-14 19:50:56 来源: 晴天小雨

0

摘要:工作中由于需要按工作日、周末的维度进行统计分析,故需要对给定的一段时间进行工作日、周末、法定假日的标记,对其解决方法进行记录,以便日后复用。

法定假日标记说明

法定假日的标记需要使用到第三方库,即workalendar

直接pip安装即可:pip install workalendar

需要注意是的,由于这个库的法定假日只是配置了今年,如果下年也要使用这个库,需要手动进行配置,或者查看官网是否进行对法定假日进行了更新,然后决定是否同步即可。

标记法定假日

from workalendar.asia import China

def cal_festival(year_list):

cal = China()

date_list = []

for year in year_list:

for x, v in cal.holidays(year):

date_list.append([str(x), v])

# 没有的收集的假日,手动添加

date_list.append(['2019-05-04', 'Labour Day Holiday'])

df = pd.DataFrame(data=date_list, columns=['date', 'festival'])

return df

标记工作日、周末

def date_to_week(start_time, end_time):

# 把时间列标准化时间格式

df = pd.DataFrame()

df['date'] = pd.date_range(start=start_time, end=end_time)

# 1-5表示工作日,6-7表示周末

df['day_of_week'] = df['date'].dt.dayofweek + 1

df['date'] = df['date'].map(lambda x: x.strftime('%Y-%m-%d'))

return df

标记工作日、周末,过滤法定假日

if __name__ == '__main__':

start_date = "2019-09-01"

end_date = "2019-09-30"

df_festival = cal_festival([2019])

date_festival_list = df_festival["date"].tolist()

df_date = date_to_week(start_date, end_date)

df_filter_date = df_date[~df_date["date"].isin(date_festival_list)].copy()

print(df_filter_date)

标记工作日、周末、法定假日

if __name__ == '__main__':

start_date = "2019-09-01"

end_date = "2019-09-30"

df_festival = cal_festival([2019])

df_date = date_to_week(start_date, end_date)

df_filter_date = pd.merge(df_date, df_festival, on=["date"], how="left")

print(df_filter_date)

收藏

已收藏取消收藏

登录发表你的评论

0条评论

python 节假日_Python区分工作日、周末、法定假日的方法相关推荐

  1. python 节假日_python判断工作日,节假日

    python判断工作日,节假日 发布时间:2020-09-07 09:37:20编辑:admin阅读(1017) 一.概述 最近在做数据分析,需要判断一个日期是否为工作日,节假日. 找到一个现成的插件 ...

  2. python 重载_python模块重载的五种方法

    环境准备 新建一个 foo 文件夹,其下包含一个 bar.py 文件 bar.py 的内容非常简单,只写了个 print 语句 只要 bar.py 被导入一次,就被执行一次 print 禁止重复导入 ...

  3. python 动态_python实现动态创建类的方法分析

    本文实例讲述了python实现动态创建类的方法.分享给大家供大家参考,具体如下: python作为动态语言,如何在运行时动态创建类呢(python Creating classes dynamical ...

  4. python参数化_Python unittest 简单实现参数化的方法

    Python unittest 理论上是不建议参数驱动的,其用例应该专注单元测试,确保每个method的逻辑正确. 引用Stack Overflow的一个答案, "单元测试应该是独立的,没有 ...

  5. python 封装_python接口自动化学习笔记(封装方法用于读取excel)

    本文是为难得干货文章 (是位大佬所写哦) 大家好,我是测试君. 下面分享一波Python接口自动化文章: 本篇是使用xlrd实现的对excel的数据进行读取,xlrd网上demo很多,不做过多叙述,下 ...

  6. 一元二次方程python脚本_Python实现求解一元二次方程的方法示例

    本文实例讲述了Python实现求解一元二次方程的方法.分享给大家供大家参考,具体如下: 1. 引入math包 2. 定义返回的对象 3. 判断b*b-4ac的大小 具体计算代码如下: # -*- co ...

  7. python set |_Python事件类| set()方法与示例

    python set | Python Event.set()方法 (Python Event.set() Method) set() is an inbuilt method of the Even ...

  8. python 示例_Python日历类| yeardayscalendar()方法与示例

    python 示例 Python Calendar.yeardayscalendar()方法 (Python Calendar.yeardayscalendar() Method) Calendar. ...

  9. python 示例_Python TextCalendar类别| pryear()方法与示例

    python 示例 Python TextCalendar.pryear()方法 (Python TextCalendar.pryear() Method) pryear() method is an ...

最新文章

  1. 四代 DNA 测序技术简述*
  2. 深层上下文化的单词表示
  3. UA PHYS515 电磁理论I 麦克斯韦方程组基础3 麦克斯韦方程的势能形式
  4. 卷积神经网络(CNN)小结
  5. Spark笔记——技术点汇总
  6. Django框架——中间件
  7. qnx 镜像文件_QNX工控机系统恢复工具-赤兔QNX工控机系统恢复软件下载10.2官方版-西西软件下载...
  8. 网页中常说的‘焦点’是什么意思
  9. 建立windows文件夹快捷方式
  10. 【人工智能】一文读懂人脸识别技术
  11. 亚马逊结算一览(C#项目)
  12. 程序设计C 实验六 结构体 题目四 偷菜时间表
  13. 动态规划算法解Travelling Salesman Problem(TSP)问题
  14. Linux单片机串口通信总结
  15. 第2章_7 判断某整数是正整数、负整数还是零 (10 分)
  16. 程序员可迁移技能的培养
  17. 对this.name=name的理解
  18. MySQL表中的联合查询
  19. Lemon评测机的使用
  20. 你的压力狗狗懂,通过闻味就知道!英国学者做实验论证,专门收集人做数学题时的气味...

热门文章

  1. 如何保证APP兼容性覆盖测试
  2. ffmpeg 提取字幕
  3. HTML5视频播放器video和音频播放器audio属性,事件,案例
  4. Origami Studio for Mac原型设计神器安装教程
  5. 盘点三款好用的计时器
  6. 计算机毕业设计jsp旅游网站
  7. 地震后日本多家工厂停工 PSP2或推迟后期研发
  8. Word 2013 Bible 免积分下载
  9. mv单位是什么意思_MV是什么意思啊?
  10. Windows Server 活动目录功能