用几分之一秒计算平均时间

时间:2019-10-31 21:34:54

标签: python-3.x pandas datetime

我在pandas数据框中有3列不同的时间戳,其中两列记录了几分之一秒,而第三列则没有几分之一秒。我想计算这三列的平均值。

我已经尝试使用列上的均值函数来计算平均值,并始终获得nan作为结果

import pandas as pd 
data = [{'time1': '2018-07-22 04:34:10.8966', 'time2': '2017-07-22 04:34:10.8966', 'time3': '2018-07-27 00:10:04'}]
df = pd.DataFrame(data)
df['estimate'] = df[['time1', 'time2', 'time3']].mean(axis=1)
df 

预期:3个时间戳记的平均值 实际:虽然没有错误,但它也总是求值为nan,这不是所需要的。

1 个答案:

答案 0 :(得分:0)

据我所知,您不能直接使用日期时间值进行转换,您需要将其转换,求平均值,然后再转换回去:

data = [{'time1': '2018-07-22 04:34:10.8966', 'time2': '2017-07-22 04:34:10.8966', 'time3': '2018-07-27 00:10:04'}]
df = pd.DataFrame(data).apply(pd.to_datetime)

df['estimate'] = pd.to_datetime(df[['time1', 'time2', 'time3']].values.astype(pd.np.int64).mean(axis=1))

结果:

                       time1                      time2               time3                      estimate
0 2018-07-22 04:34:10.896600 2017-07-22 04:34:10.896600 2018-07-27 00:10:04 2018-03-24 03:06:08.597733376