Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何计算两个24小时时间之间的差值?_Python_Pandas - Fatal编程技术网

Python 如何计算两个24小时时间之间的差值?

Python 如何计算两个24小时时间之间的差值?,python,pandas,Python,Pandas,在熊猫身上有没有一种简单的方法来区分24小时时间的不同,如下所示: 9:45 17:10 差别是7小时25分钟,也就是445分钟。当然: >>> from pandas import Timestamp >>> Timestamp('9:45') Timestamp('2016-09-30 09:45:00') >>> Timestamp('17:10') Timestamp('2016-09-30 17:10:00') >&

在熊猫身上有没有一种简单的方法来区分24小时时间的不同,如下所示:

9:45 17:10
差别是7小时25分钟,也就是445分钟。

当然:

>>> from pandas import Timestamp
>>> Timestamp('9:45')    
Timestamp('2016-09-30 09:45:00')
>>> Timestamp('17:10')
Timestamp('2016-09-30 17:10:00')
>>> Timestamp('17:10') - Timestamp('9:45')
Timedelta('0 days 07:25:00')
>>> td = Timestamp('17:10') - Timestamp('9:45')
>>> td
Timedelta('0 days 07:25:00')
如果你真的需要几分钟的时间:

>>> td.seconds/60
445
>>>
编辑 只要仔细检查文档,Timedelta对象的
seconds
属性就会返回:
秒数(>=0且小于1天)

因此,为了确保安全,如果您需要分钟,请使用:

>>> td.delta # returns the number of nanoseconds   
26700000000000
>>> td.delta * 1e-9 / 60
445.0

我认为您也可以使用Python标准库
datetime.datetime
,而无需安装pandas

>>> t1 = datetime.datetime.strptime('09:45', '%H:%M')
>>> t2 = datetime.datetime.strptime('17:10', '%H:%M')
>>> t1
datetime.datetime(1900, 1, 1, 9, 45)
>>> t2
datetime.datetime(1900, 1, 1, 17, 10)
>>> td = t2 - t1
>>> td.total_seconds()
26700.0
>>> str(td)
'7:25:00'

时间戳中的日期是否根据当前系统的日期生成?如果是这样的话,如果第一个
时间戳是今天创建的,第二个是明天创建的(如果这恰好是在晚上00:00左右执行的话),会发生什么呢?我只能猜测,会发生的就是创建一个有害的bug。我想为了绝对安全,你也应该提供一个日期。