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

如何使用Pandas计算预期时间与实际时间的常规时差?

计算符合常规认知的预期与实际时间差(Pandas)

我的DataFrame包含两个时间戳列,需要新增第三列存储符合常规认知的时差:早到为正数值,迟到为负数值,直接体现与预期时间的偏差分钟数。

测试案例与问题

早到场景(结果符合预期)

预期时间为08:00,实际时间为07:30(早到30分钟):

import pandas as pd

t1 = pd.to_datetime('1/1/2022 08:00')  # 预期时间
t2 = pd.to_datetime('1/1/2022 07:30')  # 实际时间
pd.Timedelta(t1-t2)
# 输出: Timedelta('0 days 00:30:00')

pd.Timedelta(t1-t2).seconds / 60.0  # 转换为分钟
# 输出: 30.0

这个结果符合常规认知,早到30分钟显示为正30。

迟到场景(结果不符合预期)

预期时间为08:00,实际时间为08:30(迟到30分钟):

t1 = pd.to_datetime('1/1/2022 08:00')  # 预期时间
t2 = pd.to_datetime('1/1/2022 08:30')  # 实际时间
pd.Timedelta(t1-t2)
# 输出: Timedelta('-1 days +23:30:00')

pd.Timedelta(t1-t2).seconds / 60.0  # 转换为分钟
# 输出: 1410.0

这里得到的1410分钟是23.5小时,完全不符合常规认知的“迟到30分钟”(应该显示为-30)。

临时解决方法

我发现可以通过减去24小时对应的分钟数(1440分钟)得到正确结果:

(pd.Timedelta(t1-t2).seconds / 60.0) - 1440  # 转换为符合常规的分钟数
# 输出: -30.0

疑问

我知道可以自定义函数并使用apply()处理整列数据,但这应该是个常见需求,不过我在Pandas的Timedelta文档里没找到对应的原生方法。有没有更简洁的Pandas原生方式实现这个需求?


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 14:45:57