首页 > 解决方案 > 如何在 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')

你能帮我解释一下吗?

标签: pythonpandas

解决方案


好吧,假设您的意思是这些时间不同,您可以对日期时间进行正常的加法和减法:

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

推荐阅读