Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.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 两个时间戳之间的差异,四舍五入为小时,并将列添加到数据帧_Python_Pandas - Fatal编程技术网

Python 两个时间戳之间的差异,四舍五入为小时,并将列添加到数据帧

Python 两个时间戳之间的差异,四舍五入为小时,并将列添加到数据帧,python,pandas,Python,Pandas,我有一个看起来像这样的数据框,最后两列是我用来帮助我理解时差的。我希望将时间戳和forecastRan之间的时间差向上舍入到下一个小时,并将其作为列添加到我的数据帧中。然而,它只是给了我时间(不是四舍五入) 这些是我得到不同的方式 df['time_diff_in_hours'] = (df['timeStamp'] - df['forecastRan']).astype('timedelta64[h]') df['time_diff']= (df['timeStamp'] - df['for

我有一个看起来像这样的数据框,最后两列是我用来帮助我理解时差的。我希望将
时间戳
forecastRan
之间的时间差向上舍入到下一个小时,并将其作为列添加到我的数据帧中。然而,它只是给了我时间(不是四舍五入)

这些是我得到不同的方式

df['time_diff_in_hours'] = (df['timeStamp'] - df['forecastRan']).astype('timedelta64[h]')

df['time_diff']= (df['timeStamp'] - df['forecastRan']).dt.total_seconds()
然而,第一个给了我时间。对于第二个,我尝试除以3600得到小时数,然后使用
math.ceil
进行四舍五入,如下所示:

import datetime
import math

df['time_diff']= math.ceil(((df['timeStamp'] - df['forecastRan']).dt.total_seconds()/3600))
我得到:
TypeError:无法将序列转换为
。我想问题是在我引入
math.ceil
时发生的,因为当我刚刚使用
(df['timeStamp']-df['forecastModelRun']).dt.total_seconds()/3600
时,我没有得到任何错误。不确定具体在何处汇总以及如何汇总。

我认为需要:

或:


import datetime
import math

df['time_diff']= math.ceil(((df['timeStamp'] - df['forecastRan']).dt.total_seconds()/3600))
df['time_diff']= np.ceil(((df['timeStamp'] - df['forecastRan']).dt.total_seconds()/3600))
print (df)
            timeStamp         forecastRan  time_diff_in_hours  \
0 2016-11-23 23:00:00 2016-11-23 12:18:00                10.0   
1 2016-11-24 00:00:00 2016-11-23 12:18:00                11.0   
2 2016-11-24 01:00:00 2016-11-23 12:18:00                12.0   

   time_diff_seconds  time_diff  
0            38520.0       11.0  
1            42120.0       12.0  
2            45720.0       13.0  
df['time_diff']= (df['timeStamp'] - df['forecastRan']).dt.ceil('h')
print (df)
            timeStamp         forecastRan  time_diff_in_hours  \
0 2016-11-23 23:00:00 2016-11-23 12:18:00                10.0   
1 2016-11-24 00:00:00 2016-11-23 12:18:00                11.0   
2 2016-11-24 01:00:00 2016-11-23 12:18:00                12.0   

   time_diff_seconds time_diff  
0            38520.0  11:00:00  
1            42120.0  12:00:00  
2            45720.0  13:00:00 
df['time_diff' ]= (df['timeStamp'] - df['forecastRan']).dt.ceil('h').astype('timedelta64[h]')
print (df)
            timeStamp         forecastRan  time_diff_in_hours  \
0 2016-11-23 23:00:00 2016-11-23 12:18:00                10.0   
1 2016-11-24 00:00:00 2016-11-23 12:18:00                11.0   
2 2016-11-24 01:00:00 2016-11-23 12:18:00                12.0   

   time_diff_seconds  time_diff  
0            38520.0       11.0  
1            42120.0       12.0  
2            45720.0       13.0