You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python Pandas中计算时间差并转为小数小时的实现方法

解决Pandas时间差转小数小时的问题

嘿,这个问题我之前也碰到过!你现在得到的z是Pandas的Timedelta对象,它默认的字符串输出格式是0 days HH:MM:SS,但要转换成你想要的小数小时其实很简单,这里给你两种实用的方法:

方法一:用total_seconds()转换(推荐)

这是最简洁直接的方式,因为1小时等于3600秒,我们只需要把时间差的总秒数除以3600就能得到小数形式的小时数:

g = file.start[0]
h = file.finish[0]
z = h - g
# 转换为小数小时
hours = z.total_seconds() / 3600
print(hours)

比如你的示例:开始时间8:00:00,结束时间16:30:00,运行后会输出8.5;如果是8小时整,就会输出8.0,完全符合你的需求。

方法二:拆分时分秒计算

如果你想更直观地拆分时间组件来计算,也可以通过Timedelta的components属性获取小时、分钟、秒,再分别转换后相加:

g = file.start[0]
h = file.finish[0]
z = h - g
# 拆分时分秒并转换为小时
hours = z.components.hours + z.components.minutes/60 + z.components.seconds/3600
print(hours)

这种方法和第一种结果完全一致,但代码相对冗长一些,更适合需要单独处理时分秒的场景。

简单解释下:Pandas的Timedelta对象存储了时间差的各个组件,我们只需要把分钟转成0.xx小时、秒转成更小的小数,再和小时数相加就可以了。

内容的提问来源于stack exchange,提问作者Michael

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 03:22:57