与Timedelta的时差给出错误的结果

时间:2019-02-10 22:34:37

标签: python python-3.x pandas python-2.7

我正在使用python计算以小时为单位的时差。但是,我得到了错误的结果。这是我的代码,我得到了18.4个小时,但答案肯定要多得多!

import pandas as pd
from datetime import timedelta
t1 = pd.to_datetime('2016-12-15 16:39:46')
t2 = pd.to_datetime('2016-12-21 11:03:59')
print(pd.Timedelta(t2 - t1).seconds/3600.0)

2 个答案:

答案 0 :(得分:3)

这几天缺席,我想您需要total_seconds()

print(pd.Timedelta(t2 - t1).total_seconds()/3600)

来自documentation

  

timedelta.total_seconds()

     
    

返回持续时间中包含的总秒数。     等效于

         

(td.microseconds + (td.seconds + td.days * 24 * 3600) * 10 **6) / 10 **6

         

在启用真除法的情况下进行计算。

  

答案 1 :(得分:1)

有了系列,我认为astype('timedelta64[s]')可以满足您的需求

pd.Series(t1-t2).astype('timedelta64[s]')/3600
0   -138.403611
dtype: float64