python-3.x - 用几分之一秒计算平均时间
问题描述
我在 pandas 数据框中有 3 个不同的时间戳列,其中两个记录了几分之一秒,而第三个没有几分之一秒。我想计算这 3 列的平均值。
我已经尝试使用列上的 mean 函数计算平均值,并始终收到 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,这不是我们想要的。
解决方案
据我所知,您不能直接在日期时间值上对其进行转换,您需要对其进行转换、平均,然后再转换回来:
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
推荐阅读
- firebase - Flutter Future 和 Stream
- arrays - 如何部分约束 VHDL 数组(元素)?
- oop - 如何在函数式语言中实现面向对象的多态性?
- django - 子类 PasswordResetConfirmView 返回的令牌变为“设置密码”
- r - 如何删除R中数据框中的某些观察值?
- android - Flutter:可运行的程序或批处理文件。错误:无法找到或加载
- laravel - 十月CMS属于关系保存问题
- python - 如何比较多个hdf5文件
- python - 在 keras.models.Model 类中创建一个新方法“predict_proba”,该方法返回现有方法“predict”的输出
- python - 如何检查 *args 都是字符串