我有一个看起来像这样的数据帧,我添加的最后两列帮助我理解时差。我想把timestamp
和forecastRan
之间的时间差四舍五入到下一个小时,并将其作为一列添加到我的数据帧中。然而,我如何拥有它只是给了我时间(不是四舍五入)。你知道吗
timeStamp forecastRan time_diff_in_hours time_diff_seconds
12 2016-11-23 23:00:00 2016-11-23 12:18:00 10.0 38520.0
13 2016-11-24 00:00:00 2016-11-23 12:18:00 11.0 42120.0
14 2016-11-24 01:00:00 2016-11-23 12:18:00 12.0 45720.0
这些是我得到区别的方式
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: cannot convert the series to <class 'float'>
。我想问题是在我引入math.ceil
时出现的,因为我刚使用(df['timeStamp'] - df['forecastModelRun']).dt.total_seconds()/3600
时没有任何错误。不知道具体在哪里集合,如何集合。
谢谢。你知道吗
我认为需要^{} :
或^{} :
相关问题 更多 >
编程相关推荐