python - Python/Pandas/Timeseries : 如何定义工作开始时间/工作结束时间并提取工作时间?
问题描述
我从 jupyter notebook 导入以下包以提取工作时间。
import pandas as pd
import numpy as np
import datetime as d
import time
df = pd.read_excel(rawdata)
原始数据如下所示,这是一个 Excel 列
╔═════════════════════╦═════════════════════╗
║ Start Date Time ║ End Date Time ║
╠═════════════════════╬═════════════════════╣
║ 2020-02-18 16:00:00 ║ 2020-02-08 21:00:00 ║
║ 2020-02-19 07:00:00 ║ 2020-02-19 12:00:00 ║
║ 2020-02-20 12:00:00 ║ 2020-02-21 14:00:00 ║
╚═════════════════════╩═════════════════════╝
所以我改变了类型..
- 开始日期考虑工作日(上班)/周末(下班)/国定假日(下班)
- 开始日
- 开始时间提取工作时间/超时
结束日期也一样
df['Start Date and Time'] = pd.to_datetime(df['Start Date and Time']) df['start_date'] = df['Start Date and Time'].dt.date df['start_day'] = df['Start Date and Time'].dt.weekday_name df['start_time'] = df['Start Date and Time'].dt.time
我可以简单地减去 df['End Date and Time'] - df['Start Date and Time'] 的净持续时间,但我的问题是如何应用时间范围来区分官方工作时间和随着时间的推移。
正式工作时间 : 09AM - 06PM
我的计划是(1)简单地减去结束 - 开始时间(2)看看它是否发生在上午 9 点到下午 6 点(3)计算(1)-(2)=超时
寻求您对 (2) 的建议,因为我从未使用过时间序列数据,而且时间序列确实令人困惑。感谢您的建议!
解决方案
推荐阅读
- c# - 有没有办法让 switch 使用 C# 8 switch 表达式返回字符串值?
- java - 使用 JPAUpdateClause 更新集合字段
- ansible - 以使用哪个 remote_user 为条件?
- sql-server - SQL:需要根据 12 的倍数选择值
- node.js - 无法读取 null 的“db”属性
- youtube - 有没有办法使用 Youtube API v3 来获取过去的订阅者数量?
- python - Jupyter notebook 键盘快捷键,仅在单元格中运行选定的行
- scala - 将空数据框保存到镶木地板会导致错误 - Spark 2.4.4
- c++ - 基类指针:在哪里使用 new 和 delete
- vue.js - Vue插值在API获取的文本中不起作用