python - 如何在 Python 3、pandas 中计算总工作时间
问题描述
我正在学习 python 并使用 Pandas。我被困在如何计算两个时间点之间的工作时间(不包括假期,......)?我有两列
Column A
2018-05-11 16:59:00
2018-05-11 16:59:00
2018-05-11 16:59:00
2018-05-11 16:59:00
2018-05-11 16:59:00
2018-05-11 16:59:00
Column B:
2018-05-11 16:59:00
2018-05-11 16:59:00
2018-05-11 16:59:00
2018-05-11 16:59:00
2018-05-11 16:59:00
2018-05-11 16:59:00
- C 列是 B 列的内容 - A 列(消除休息时间后)我使用了下面的模块但失败了: https ://pypi.org/project/business-duration/
我只想计算工作时间,所以我找到了模块: https ://pypi.org/project/business-duration/ 我尝试了单个数据:
businessDuration(startdate=data['A'][0],enddate=data['B'][0],unit='hour')
这是可行的,但下面的代码不起作用:
businessDuration(startdate=data['A'],enddate=data['B'],unit='hour')
你能帮我解释一下吗?
解决方案
好吧,假设您的意思是这些时间不同,您可以对日期时间进行正常的加法和减法:
data = [
['2018-05-11 16:50:00', '2018-05-11 16:59:00'],
['2018-05-11 16:45:00', '2018-05-11 16:59:00'],
['2018-05-11 16:19:00', '2018-05-11 16:59:00'],
]
data = pd.DataFrame(data, columns = ['A', 'B'])
data = data.apply(pd.to_datetime)
data['C'] = data['B'] - data['A']
print(data)
输出:
A B C
0 2018-05-11 16:50:00 2018-05-11 16:59:00 00:09:00
1 2018-05-11 16:45:00 2018-05-11 16:59:00 00:14:00
2 2018-05-11 16:19:00 2018-05-11 16:59:00 00:40:00
推荐阅读
- azure - Web 应用服务的 Azure Insights 数据:为什么 Ajax 调用和控制器方法显示的响应时间可能有很大差异
- mysql - 如何在一个语句中查询包装多个交叉连接未嵌套
- android - 将目标 SDK 升级到 30 会导致“无法解析符号 org.apache.commons.net”
- c# - 试图在开关内循环
- python - 根据 pandas 中两个不同列的两个条件创建新列
- kubernetes - 如何将 pod 出口流量限制为仅外部
- macos - Mac 终端字体有时清晰有时模糊?
- flutter - Flutter Navigator - 推送到同一页面
- c# - 折线图 WinForms 上的 2 种颜色
- node.js - 通过 SOCKS5 协议将 Node.js 服务器应用程序连接到 MS SQL Server