如何在Python3中计算总工作时间

如何在Python3中计算总工作时间,python,pandas,Python,Pandas,我正在学习python和使用熊猫。 我被困在如何计算两个时间点之间的工作时间,不包括假期。。。? 我有两个专栏 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-1

我正在学习python和使用熊猫。 我被困在如何计算两个时间点之间的工作时间,不包括假期。。。? 我有两个专栏

 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列的内容 我已使用以下模块,但失败:

我只想计算工作时间,所以我找到了模块: 我通过以下方式尝试了单个数据:

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

请检查您的数据:A列和B列完全相同。另外,你期望的结果是什么?你得到了一个很好的答案。然而,你的问题仍然缺乏质量。我建议使用@TroyD提供的数据,并结合sacul的评论更新您的帖子。在这一点上,这将是一个有用的问题。如果你这样做了,请给我留下一条评论,说明你这样做了,我可以相应地投票。data.applypd.to_datetime.assignC=lambda d:d.B-d.ANice call piRSquared。更新后的答案是lambda赋值比data['C']=data.B-data.a更好还是更差?假设A和B已经是约会时间了?据我所知,这并没有更好或更糟。我认为它最好只允许一行,但现在我再看一遍。赋值可能不太可读,所以我将其切换回去。