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

pandas如何计算两日期列差值转小时、判断差值是否超过20小时

问题原因

你计算得到的Transf1-Coleta列属于pandas *Timedelta(时间差)*类型,既不需要也不能用pd.to_datetime转换为日期类型,同时也无法直接和字符串格式的时间做大小比较。

正确实现方法

两种常用实现方案可选:

方案1:转换为总小时数比较

将时间差转换为总小时数后直接和阈值20比较:

# 大于20小时返回True,否则返回False,负数差值自动判定为不满足
df['is_over_20h'] = df['Transf1-Coleta'].dt.total_seconds() / 3600 > 20

方案2:直接和Timedelta阈值比较

构造20小时的Timedelta对象直接做比较,代码更直观:

df['is_over_20h'] = df['Transf1-Coleta'] > pd.Timedelta(hours=20)

补充说明

如果你的需求是判断两个时间的绝对差值超过20小时,忽略先后顺序,只需对差值取绝对值后再比较即可:

df['abs_over_20h'] = abs(df['Transf1-Coleta']) > pd.Timedelta(hours=20)

内容的提问来源于stack exchange,提问作者João Galdino

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 03:48:02