如何将日期时间序列转换为以小时为单位的实际持续时间?

克莱布

我有一个这样的数据框:

index = ['2018-02-17 00:30:00', '2018-02-17 07:00:00',
'2018-02-17 13:00:00', '2018-02-17 19:00:00',
'2018-02-18 00:00:00', '2018-02-18 07:00:00',
'2018-02-18 10:30:00', '2018-02-18 13:00:00']

df = pd.DataFrame({'col': list(range(len(index)))})
df.index = pd.to_datetime(index)

                     col
2018-02-17 00:30:00    0
2018-02-17 07:00:00    1
2018-02-17 13:00:00    2
2018-02-17 19:00:00    3
2018-02-18 00:00:00    4
2018-02-18 07:00:00    5
2018-02-18 10:30:00    6
2018-02-18 13:00:00    7

并想添加一个以小时为单位反映实际持续时间的列,因此我想要的结果如下所示:

                     col  time_range
2018-02-17 00:30:00    0         0.0
2018-02-17 07:00:00    1         6.5
2018-02-17 13:00:00    2        12.5
2018-02-17 19:00:00    3        18.5
2018-02-18 00:00:00    4        23.5
2018-02-18 07:00:00    5        30.5
2018-02-18 10:30:00    6        34.0
2018-02-18 13:00:00    7        36.5

我目前这样做如下:

df['time_range'] = [(ti - df.index[0]).delta / (10 ** 9 * 60 * 60) for ti in df.index]

有没有更智能(即矢量化/内置)的方法来做到这一点?

耶斯列

用:

df['new'] = (df.index - df.index[0]).total_seconds() / 3600

或者:

df['new'] = (df.index - df.index[0]) / np.timedelta64(1, 'h')

print (df)
                     col   new
2018-02-17 00:30:00    0   0.0
2018-02-17 07:00:00    1   6.5
2018-02-17 13:00:00    2  12.5
2018-02-17 19:00:00    3  18.5
2018-02-18 00:00:00    4  23.5
2018-02-18 07:00:00    5  30.5
2018-02-18 10:30:00    6  34.0
2018-02-18 13:00:00    7  36.5

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在电源查询中,如何将数字转换为以秒为单位的持续时间?

熊猫:当分钟数大于60时,如何将持续时间以分钟:秒为单位的列转换为日期时间?

如何将以小时(h)为索引单位的熊猫时间序列转换为熊猫日期时间格式?

将“持续时间”“单位”转换为毫秒

如何计算从选定时间(小时)到给定持续时间的时间(以小时为单位)

如何将日志(采用 logfmt 格式)中的混合分秒持续时间值转换为一致的单位?

如何基于R中的持续时间(显示开始和结束时间以及以小时和分钟为单位的持续时间)来计算最长日期

如何将15分钟数据转换为每小时以熊猫为单位的时间?

如何将YouTube API持续时间(ISO 8601持续时间,格式为PT#M#S)转换为秒

将时间转换为持续时间

如何将任意大的持续时间转换为纳秒精度的持续时间而不会溢出?

将日历持续时间转换为持续时间

r:如何计算以hh:mm:s为单位的持续时间,以小时为单位,但午夜重叠

如何将 CellInfo 时间戳转换为实际日期?

将开始时间和总持续时间转换为每小时经过的时间

如何将jodatime持续时间转换为格式为hh:mm:ss的字符串?

Powershell格式的持续时间,以小时和分钟为单位

如何将iso 8601持续时间转换为秒转换scala

将持续时间(BigDecimal 值 + 时间单位)转换为毫秒长

如何将小时值为24的日期/时间字符串转换为Pandas中的日期时间?

如何在 jupyter notebook 中使用 python 3 仅将持续时间转换为小时而不是天和小时?

Java:如何将字符串(HH:MM:SS)转换为持续时间?

如何将PT格式的持续时间转换为PHP中的常规字符串

如何将 std::chrono::duration 转换为提升持续时间

如何将ISO 8601持续时间转换为秒

如何将持续时间/计时器转换为十六进制?

如何将分钟持续时间转换为像素以计算元素高度?

如何将ZonedDateTime舍入为持续时间

如何在SQL中以小时和分钟为单位的平均持续时间?