营业时间 2019/1/19

BusinessHour()提供在营业时间表示BusinessDay,允许使用特定的开始和结束时间。

pd.tseries.offsets.BusinessHour()#营业时间,允许使用特定的开始和结束时间。默认BusinessHour使用9:00 - 17:00作为营业时间。
BusinessHour将按Timestamp小时频率递增。
如果超过营业时间将剩余的小时数将添加到下一个工作日。
将周六和周日视为假期。用任意假日使用CustomBusinessHour偏移量

导入:

from pandas.tseries.offsets import *
import datetime

实例1:

# 实例1.1:在一个工作日内
bh = BusinessHour() # <BusinessHour: BH=09:00-17:00>
pd.Timestamp('2019-01-18 10:00').weekday()#周五 # 4
pd.Timestamp('2019-01-18 10:00') + bh #加1小时# Timestamp('2019-01-18 11:00:00')pd.Timestamp('2019-01-18 08:00') + bh#Timestamp('2019-01-18 10:00:00')
pd.Timestamp('2019-01-18 09:00') + bh#等价上面#实例1.2:结果在结束时间转到下一个工作日
pd.Timestamp('2019-01-18 16:00') + bh# Timestamp('2019-01-21 09:00:00')#实例1.3:剩余时间加到第二天
pd.Timestamp('2019-01-18 16:30') + bh# Timestamp('2019-01-21 09:30:00')#实例1.4:Adding 2 business hours
pd.Timestamp('2019-01-18 10:00')+BusinessHour(2)# Timestamp('2019-01-18 12:00:00')#实例1.5:Subtracting 3 business hours
pd.Timestamp('2019-01-18 10:00')+BusinessHour(-3)# Timestamp('2019-01-17 15:00:00')

实例2:按关键字指定start和end计时

# 参数必须是str带有hour:minute或datetime.time 实例的参数。
# 指定秒,微秒和纳秒作为营业时间的结果ValueError。# 实例2.1:start时间<end时间
bh =BusinessHour(start='11:00', end=datetime.time(20, 0))# <BusinessHour: BH=11:00-20:00>pd.Timestamp('2019-01-18 13:00') + bh# Timestamp('2019-01-18 14:00:00')
pd.Timestamp('2019-01-18 09:00') + bh# Timestamp('2019-01-18 12:00:00')
pd.Timestamp('2019-01-18 18:00') + bh# Timestamp('2019-01-18 19:00:00')# 实例2.2:start时间 >end时间 - 营业时间超过午夜并重叠到第二天
bh=BusinessHour(start='17:00',end='09:00')# <BusinessHour: BH=17:00-09:00>
pd.Timestamp('2019-01-18 17:00') + bh# Timestamp('2019-01-18 18:00:00')
pd.Timestamp('2019-01-18 23:00') + bh# Timestamp('2019-01-19 00:00:00')
pd.Timestamp('2019-01-19 04:00') + bh# Timestamp('2019-01-19 05:00:00') 1/19是周六,起源于周五
pd.Timestamp('2019-01-21 04:00') + bh# Timestamp('2019-01-21 18:00:00') 1/21是周日,起源于周六

实例3:BusinessHour.rollforward和rollback导致下一个营业时间开始或前一天结束

# 与其他偏移BusinessHour.rollforward 不同,可以apply根据定义输出不同的结果。# This adjusts a Timestamp to business hour edge
BusinessHour().rollback(pd.Timestamp('2019-01-19 15:00'))# Timestamp('2019-01-18 17:00:00')
BusinessHour().rollforward(pd.Timestamp('2019-01-19 15:00'))# Timestamp('2019-01-21 09:00:00')BusinessHour().apply(pd.Timestamp('2019-01-18 17:00'))#等价下面
BusinessHour().apply(pd.Timestamp('2019-01-21 09:00'))#Timestamp('2019-01-21 10:00:00')BusinessHour().apply(pd.Timestamp('2019-01-19 15:00'))#Timestamp('2019-01-21 10:00:00')# BusinessDay results (for reference)
BusinessHour().rollforward(pd.Timestamp('2019-01-19'))# Timestamp('2019-01-21 09:00:00')# It is the same as BusinessDay().apply(pd.Timestamp('2019-01-18'))
# The result is the same as rollworward because BusinessDay never overlap.
BusinessHour().apply(pd.Timestamp('2019-01-19'))# Timestamp('2019-01-21 10:00:00')

实例4:CustomBusinessHour自定义营业时间

# 允许指定任意假期,其作用CustomBusinessHour相同BusinessHour。from pandas.tseries.holiday import USFederalHolidayCalendar
bhour_us = CustomBusinessHour(calendar=USFederalHolidayCalendar())
# 实例1:
# Friday before MLK Day
dt = datetime(2014, 1, 17, 15)dt + bhour_us# Timestamp('2014-01-17 16:00:00')
# Tuesday after MLK Day (Monday is skipped because it's a holiday)
dt + bhour_us * 2# Timestamp('2014-01-21 09:00:00')# 实例2:BusinessHour关键字参数CustomBusinessDaybhour_mon = CustomBusinessHour(start='10:00', weekmask='Tue Wed Thu Fri')# Monday is skipped because it's a holiday, business hour starts from 10:00
dt + bhour_mon * 2# Timestamp('2014-01-21 10:00:00')

59 pandas 时间序列-BusinessHour营业时间及自定义营业时间(tcy)相关推荐

  1. python输入一个数组输出24进制式的时间_python获取时间,自定义的时间格式,时间戳,十六进制时间类型输出...

    python获取时间,此文使用到的两个库:IDE-PyCharm import time import datetime 获取当前日期和时间: now_tm = datetime.datetime.n ...

  2. pandas创建时间序列仿真数据并过滤(filter)时间数据:头尾数据、某年的数据、某年某月的数据、某年某月某日的数据、某个时间范围内的数据、truncate函数查看特定时间之前护着之后的数据

    pandas创建时间序列仿真数据并过滤(filter)时间数据:头尾数据.某年的数据.某年某月的数据.某年某月某日的数据.某个时间范围内的数据.truncate函数查看特定时间之前护着之后的数据 目录

  3. 使用SPSS做时间序列预测时,如何自定义日期型数据周期(时间数据周期)?

    使用SPSS做时间序列预测时,如何自定义日期型数据周期/时间数据周期? 问题的产生 解决方案的来源:SPSS自带的语法参考 DATE命令的基本使用方法 两个示例讲解 写好命令以后如何运行 需要注意的点 ...

  4. Pandas 时间序列 - DateOffset 对象

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 国亡身殒今何有,只留离骚在世间. ...

  5. Pandas 时间序列 - 纵览与时间戳

    点击上方"Python爬虫与数据挖掘",进行关注 回复"书籍"即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 一身报国有万死,双鬓向人无再青. ...

  6. pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征

    pandas使用resample进行不同粒度下的时间特征重构实战:构建时间维度统计特征 Pandas中的resample,重新采样,是对原样本重新处理的一个方法,是一个对常规时间序列数据重新采样和频率 ...

  7. pandas 如何把时间转成index_pandas 时间格式转换的实现

    pandas 时间格式转换的实现 OUTLINE 常见的时间字符串与timestamp之间的转换 日期与timestamp之间的转换 常见的时间字符串与timestamp之间的转换 这里说的字符串不是 ...

  8. EduCoder Pandas高效化运算与时间序列处理 第3关:Pandas时间序列的高级应用

    文章目录 任务描述 相关知识 时间频率与偏移量 重新取样.迁移和窗口 重新取样 时间迁移 移动时间窗口 编程要求 测试说明 任务描述 根据相关知识完成下列任务: 求上个季度(仅含工作日)的平均值: 求 ...

  9. python处理时间序列_Python——Pandas 时间序列数据处理

    介绍 Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取.转换.过滤.分析等一系列操作.同样,Pandas 已经被证明为是非常强大的用于处理时间序列数据的工具.本节将介绍 ...

最新文章

  1. java 默认字符集 iso_当服务器的默认字符集是UTF-8时,Perl并使用ISO-8859-1字符集...
  2. TDD in .NET Core - 简介
  3. [脑图]如何入门技术、进阶技术(技术开发人员)
  4. OCP大会 | DCOS – 面向数据中心的运营操作系统(附PPT)
  5. .NET 6 预览版 7 发布--(最后一个预览版)
  6. js 判断数据是否为空
  7. iOS App的图标,启动画面及其它
  8. 数据库设计技巧系列(二)——设计表和字段
  9. 2018年大数据趋势丨大数据的黄金时代
  10. python实现深度优先搜索_python 递归深度优先搜索与广度优先搜索算法模拟实现...
  11. linux系统 安装svn客户端下载,Linux安装svn客户端
  12. 我的世界服务器怎么修改名称,我的世界端游怎么改名字
  13. 央央家政解读:育儿嫂服务内容和标准
  14. 【测试开发】Python—logging日志封装
  15. java爬虫系列(三)——漫画网站爬取实战
  16. Ubuntu 20.04系统安装及初始配置
  17. HTTP协议三次握手过程
  18. 软件构造(九) 面向复用的软件构造技术
  19. 8赛道,64匹马找最快的8匹马
  20. Gibbs抽样方法详解

热门文章

  1. 微信自定义菜单 快递接口 SpringMVC mybatis redis shiro ehcache websocket
  2. 【spark】Spark程序开发
  3. 苹果公司商业模式分析
  4. 新增一个复合主键的步骤
  5. 从洞察到决策,一文解读标签画像体系建设方法论
  6. Java Sleep 类以及使用方法
  7. java中int[] arr和int arr[]有什么区别
  8. 解决excel报错the setup controller has encountered a problem during install
  9. 小小知识点(二十七)20大5G关键技术
  10. PostgreSql pg_dump用法